初识继承和多态

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()函数,对象创建完毕

原文地址:https://www.cnblogs.com/GIRLANDBOYS/p/7091196.html