11.JAVA基础(多态)
多态
多态:一个事物,在不同时刻表现出来的不同状态
多态前提:
1.有继承关系
2.有方法重写:没有也可以的,但是如果没有重写就没有意义了
3.有父类引用指向子类对象 父 f = new 子()
成员变量:编译看左边,运行看左边
成员方法:编译看左边,运行看右边
静态方法:编译看左边,运行看左边
总结:如果存在重写,运行看右边
类Object 是类层次结构的根类。每个类都试用Object作为超类。所有对象(包括数组)都实现这个类的方法
多态的好处
1.提高了代码的维护性(继承保证)
2.提高了代码的扩展性
多态的弊端:不能试用子类的特有功能
转型:
转型分为两种:
1.向上转型:Fu f = new Zi();
2.向下转型:Zi z = (Zi)f;
把父类的引用强制转换为子类的引用,这个就是向下转型
在java中,一个没有方法体的方法就应该定义为抽象方法而类中如果有抽象方法,该类必须定义为抽象类
抽象关键字:abstract
抽象方法,不能有方法体
抽象类不能直接实例化,但是可以靠具体的子类实现,是多态的写法
abstract不能和private,final,static共存