向上转型(多态)
(1)例:age在Animal类中有,所以通过编译,weight在Animal类中没有,所以没有通过编译,访问的是Animal类的成员变量age;
eat( )在Animal类中有,所以通过编译,playGame( )在Animal类中没有,所以没有通过编译,访问的是Cat类的成员方法eat()。
给两个类分别创建一个对象,第一个类里含有一个无参构造方法,第二个类含有一个含参构造方法且参数是第一个类的对象
即如:
第一个类:
第二个类:
测试类:
输出:
解释:
(2)示例:
左边有该成员方法==>可以通过编译
右边没有该成员方法==>调用左边的
(3)当子类有父类没有的功能时,称之为特有功能,调用时无法通过编译
向下转型:将父类引用强制类型转换为子类对象,可以凭借转换后的对象调用子类特有成员方法
示例:猫和狗多态版
抽象方法:只有方法声明,没有方法体
用abstract关键字修饰
抽象类里面可以有抽象方法也可以有非抽象方法:
(1)抽象类里面可以没有抽象方法,但抽象方法一定在抽象类里面



