一、什么是多态?
就是同一个对象在不同情况下展现的不同形态,对象的多种形态。
1.1 格式:多态的前提是存在继承/实现关系下的
在Car继承Animal的前提下
(左边是父类,右边是子类)
Animal animal = new Cat();
1.2多态中成员变量和成员方法访问特点
在访问成员变量时:
编译看左边,运行看左边
原因:成员变量是没有多态的,谁调用就找谁
在访问成员方法时:
编译看左边,运行看右边
原因:成员方法是有多态性的,有方法的重写
多态的优缺点
好处:提高了代码的扩展性,在方法中,使用父类型作为参数可以接收所有子类对象
缺点:不能使用子类所特有的功能
多态的转型
父子类型相互转换:
子转父:向上转型(自动类型转换)
父转子:向下转型(强制类型转换)
只有父转子后才能调用子类独有的方法
注意:
在转换时可以通过【instanceof】关键字进行判断,转换类型与真实的对象类型不一致时会报错,只有转换为真正的子类类型才能调用子类独有的功能。