其中,继承和接口实现都可以看成是java的三大特性之一的继承;
继承时候,访问成员方法是 等号右边new的是谁就用优先考虑谁的方法,没有再往上找;
访问成员变量是 等号左边引用的是谁就优先访问谁的成员变量,没有再往上找;
成员变量不可以覆盖重写,就看你有没有,且都是只能向上找;
即多态 的访问成员变量和成员方法的规则和普通继承一样;
访问成员方法时候:编译看左,运行看右,没有向上找;
其中,Zi类中是有独有的成员方法methodZi()的,但是还是编译报错;
访问成员变量时候,编译看左,运行还看左,没有则向上找;
父类的成员方法不是抽象方法,抽象方法必须存在于抽象类中,父类是可以直接创建对象的;
抽象类也可以作为父类;
多态的意义:左边代码一直不变
左边代码一直不变,右边new出来的可能各种各样的子类;
向上转型和向下转型:
其中,Cat类中有独有的成员方法catchMouse()的,但是因为多态性,向上转型之后是不可以调用的,编译报错;
解决方法是向下转型为子类: