多态成员访问特点及好处
特点:
1.成员变量
- 编译看左边(父类),运行看左边(父类)
2.成员方法
- 编译看左边(父类),运行看右边(子类)
在编译的时候,会检查父类中有没有这个方法
没有:编译出错
有:编译通过,但是运行的时候,一定会执行子类的方法逻辑
原因:担心你调用的方法,在父类中是一个抽象方法
例外
若调用静态成员 :
细节:静态成员,可以使用对象名调用,但这是一种假象,–生成字节码文件后,会自动将对象名调用,改为类名调用
public static void main(String[] args){
Fu f = new Zi();
f.print(); //若这里是静态方法
//实际上为Fu.print()
}
好处
- 提高了程序的扩展性
- 对象多态:将方法的形参定义为父类类型,这个方法可以接受该父类的任意子类对象
- 行为多态:同一个行为,具有多个不同表现形式或形态的能力
弊端
不能使用子类的特有方法