多态

其中,继承和接口实现都可以看成是java的三大特性之一的继承;

继承时候,访问成员方法是  等号右边new的是谁就用优先考虑谁的方法,没有再往上找;

访问成员变量是  等号左边引用的是谁就优先访问谁的成员变量,没有再往上找;

 

成员变量不可以覆盖重写,就看你有没有,且都是只能向上找;

即多态 的访问成员变量和成员方法的规则和普通继承一样;

 

访问成员方法时候:编译看左,运行看右,没有向上找;

其中,Zi类中是有独有的成员方法methodZi()的,但是还是编译报错;

 

访问成员变量时候,编译看左,运行还看左,没有则向上找;

 

父类的成员方法不是抽象方法,抽象方法必须存在于抽象类中,父类是可以直接创建对象的; 

抽象类也可以作为父类;

 

多态的意义:左边代码一直不变

左边代码一直不变,右边new出来的可能各种各样的子类;

 

 

向上转型和向下转型:

其中,Cat类中有独有的成员方法catchMouse()的,但是因为多态性,向上转型之后是不可以调用的,编译报错;

解决方法是向下转型为子类:

 

 instanceof使用,判断向上转型后的父类是哪个子类转的:

 

posted @ 2019-04-03 14:40  wmqiang  阅读(119)  评论(0编辑  收藏  举报