1.继承:一个类可以使用另一个类的属性和方法(成员)
1.1 子类继承父类使用的符号是冒号 1.2 子类不能继承父类的构造函数2.我们new子类构造的时候,到底发生了什么? 2.1 调用子类构造的时候,没有使用base关键字调用父类的指定的构造,默认调用父类的无参构造3.base关键字 3.1 base.父类属性 3.2 base.父类方法 3.3 总结:base.父类成员 3.4 base():父类的构造 3.5 结论:base(参数1,参数2)顺序是根据父类构造的参数顺序保持一致,但是变量名是和子类构造的参数变量名一致.4.访问修饰符 当前类 子类 其他类 4.1 private √ × × 4.2 protected √ √ × 4.3 public √ √ √5.继承的两大特性 5.1 单根性:一个类只能有一个直接父类 5.2 传递性:A是B的父亲,B是C的父亲,C和A是什么关系?(A是爷爷,C是孙子) C仍然可以继承A的东西6.父类变量指向子类对象 Traffic car=new Car(); car.Run(); //父类的Run方法 ((Car)car).Run2(); //子类特有的Run2方法 反馈给编译器的car就是父类变量,不能使用子类的方法7.多态初步(子类override 父类virtual) 7.1 多态的概念:不同的对象对于同一个操作,做出的响应不同,就是多态. 7.2 多态的目的:多态的目的就是为了统一调用8.继承当中子类构造的执行过程 8.1 从Main函数跳转到子类构造,但是不进入方法体,无论有没有base(),都会找父类构造 8.2 跳转到父类的构造,执行构造体 8.3 跳回子类构造体,执行方法体 8.4 跳回到Main()函数,对象创建完毕