1 为什么会有多态?
因为在设计一个方法的时候,通常希望该方法具有一定的通用性。
假如说要实现一个动物叫的方法,但是每一个动物的叫声不同,因此可以在方法中接收一个动物类型的参数,这样在同一个方法中,由于参数不同导致执行效果各异的现象就是多态。这也是为什么设计多态的原因。(总结就是同一个行为具有多个不同的表现形态)
2 怎么实现多态 ?
关键三要素 :(1)继承(也可是接口的实现)(2)重写 (3)向上转型(其实就是父类引用指向子类对象)
注意:在多态中设计对象的类型转换。
如果是向上转型的,直接显示转换,无需一定是安全的,这是因为范围从小到大的转换(类似,int——double转换)。
如果是向下转型的,需要强制类型转换格式如下
子类名称 对象名 =(子类名称)父类对象 (大范围到小范围) 特别的,向下转换需要前后一致。为了判断向下转型前后一致,引入了instanceof进行判断(格式:对象 instanceof 类),如果返回的值是true,可以转,否则,不可