多态小结
所谓多态,就是把子类对象当成父类对象来使用。
具体在编程时,有一个原则:所有父类变量出现的地方,都可以用子类变量代替!
父类变量指向子类对象的处理方式称之为上溯造型(Cast)。通过上溯造型实现的变量,只能访问到父类的属性和方法,而对于子类新增加的属性和方法是不可以访问的。
抽象类不能被实例化,但可以通过上溯造型访问抽象类中的非抽象成员。
在派生类中重写抽象成员时需要使用关键字override,抽象方法就是隐式的虚拟方法。
在继承链上有三种方法可以实现多态:通过抽象类实现的多态、通过接口实现的多态和通过普通类实现的多态。
(1) 在多态造型中,对于父类抽象方法、接口方法调用而言,调用的是子类的方法。
(2) 在多态造型中,对于父类为抽象类中包含的实例方法而言,调用的是父类的方法。
(3) 在多态造型中,对于父类为普通类的实例方法而言,调用的是父类的方法。
(4) 在多态造型中,对于父类为普通类的虚拟方法而言,若子类重写了该方法,则调用子类的方法,否则调用父类的方法。