1、为什么使用多态?
参数都是父类的子类,而实现的效果却不同
2、多态
同一个引用类型,不同的实例而使用相同的方法执行不同的操作
父类引用,子类对象
使用多态减少类中代码量,增强了系统的扩展性和可维护性
3、实现多态思路
a、编写父类
b、编写子类,子类重写父类方法
c、运行时,使用父类的类型,子类的对象
实现多态的两要素:1、子类重写父类的方法
2、使用父类的类型,子类的对象
Pet pet=new Dog();---自动类型转换(子类对父类方法重写)
实现多态的两种形式:a、使用父类作为方法形参实现多态
b、使用父类作为方法返回值实现多态
4、父类到子类的转换----子类特有的方法
对象 instanceof 类或接口
p instanceof Dog;//dog的实例是p 前面的对象是不是后面的实例
((Pnguin) p).swimming();//强转 父类不能调用子类的方法,需要强转
instanceof 实例 通常和强制类型转换结合使用