继承和多态

1.多态高级   

1).多态

里氏替换原则:

       子类除了可以具有父类私有的成员和方法外,还有可以拥有自己特有的成员变量和方法.

2).is和as

     is做的是类型判定

     as做的是类型转换,()强转.本行code不会有错误,如果转换不了.返回null.

3).父类的虚方法,而且定义不必强制重写.

父类的抽象方法,子类必须强制重写.

4).抽象方法实行多态

父类得是抽象类,而且定义了抽象方法.

子类必须重写抽象方法

5).

抽象类和抽象方法注意点:手写()
1.抽象类使用Abstract关键字修饰。
2.抽象方法只能位于抽象类中。
3.抽象类不能实例化
4.抽象方法不能有方法体,甚至连{}都没有
5.抽象类不能是静态类或者密封类
6.子类必须重写抽象类中的所有抽象方法,除非子类本身也是一个抽象类
7.抽象类中可以有普通方法
8.抽象类可以有构造函数
9.重写所有抽象方法的快捷键是Ctrl+.
10.抽象类中抽象方法就是用来约束子类方法形式(签名)的


原理要解:抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,
而是通过父类的引用来指向子类的实例来间接地实现父类的实例化
(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,
也就把其父类(抽象类)给实例化了).

结论:抽象类是可以实例化的,不能通过new实例化,可以通过子类构造自动调度父类构造实例化

原文地址:https://www.cnblogs.com/2652405350wch/p/6575164.html