当前位置:首页 > Windows程序 > 正文

C#笔记誊录

2021-03-24 Windows程序

面向对象的三大特征: 封装性 继承性  多态性

一.继承:类与类的关系

为什么会用继承:减少代码重复 优化 空间内存 实现多态 

class 基类 { //基类成员 } class 子类:基类 { //子类成员 }

判断继承关系 用进行进行判断--》子类对象 is 父类成员

例如 诺基亚手机  诺基亚280  诺基亚板砖007

继承特征 :1.单根性  一个只能继承自一个类 不可能继承俩个类

                 2.传递性   爷爷 父亲 孙子

                 3.派生于object根类(c#范围) c#里面的所有成员都来源于object  用于实现多态

注意:       1.继承中构造函数的问题  其实就是执行顺序

                 2.可以手动添加一个无参构造方法

                 3.访问修饰符

继承练习:

写一个student类 姓名 性别 年龄 hello方法与teacher类 姓名 性别 年龄 工资 hello方法 通过构造方法为成员赋初值 说hello

class student { private string _name; private string _age; private string _gender;//三个字段填充类的信息 public Student (string name ,int age ,char gender)//方法给三个字段赋值 –->4 { _name=name; _age=age; _gender=gender; } public string Name { get{return _name;} } public int Age { get {return _age;} } public char Gender { get {return _gender} } //三个属性限制访问级别 为了数据安全 }

class Teather : Student { private int _score; public Teacher(string name , int age ,char gender , int score): base (name ,age ,gender)—->3 -->5 { _score =score; } public void Hello() -->7 { Console.WriteLine("大家好,我叫{0},今年{1}岁了,我是{2}生,我这次考了{3}分",Name,Age,Gender,_Score); -->8 } public int Score { get {return _Score;} } } class Pregram { static void Main(string [ ] args ) { -->1 Teacher tea1= new Teacher ("张三 ",19,95); -->2 -->6 stu1.Hello(); Console.ReadKey(); -->9 } }

解析代码:

public Teacher(string name , int age ,char gender , int score)//定义子类构造方法

: base (name ,age ,gender) 调用父类方法 为什么不这样写 base (string name ,int age ,char gender) 因为name已经定义过了如果写string name 有类型和变量 这就是定义 而不是传参

base : 如果这里你不用base调用父类构造方法为子类赋初值,那你只有自己手动在子类构造方法里面为子类赋初值例子如下:

base._name-name; this._age=age; this.gender=gender;

注意:这里的base和this没区别 在字段前加base和this只要不会由编译器误解给程序走看的。

上面代码涉及构造方法(继承中)的执行顺序:

1.调用子类构造方法时,先调用父类构造方法 这里的base是在调用父类构造方法 base后面的参数 name,,age,gender应该和4参数对应

2.private的限制 类里面class{}大括号范围

二.继承中关于构造方法的调用this和base区别

this : 表示当前类 ,表示当前构造方法 --》解析:指定先调用哪一个当前类的构造方法就一个类里面(变化在一个类)

base:表示父类,父类构造方法--》解析:指定首先调用哪一个父类构造方法(变化在子类和父类 俩个类或多个类)

构造方法不一样你创建出来的对象就是不一样

this代码示例如下:

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/66849.html