多态
多态是同一个行为具有多个不同表现形式或形态的能力。多态性是对象多种表现形式的体现。
1.方法的多态性方法重载:同一个方法名称可以根据参数的类型和个数的不同从而调用不同的方法。
方法复写:同一个父类的方法 根据实例化的子类不同从而调用不同的方法。
2.对象的多态性(核心是方法的复写)
【自动】对象向上转型 (目的:接受参数的统一)(表现形式:父类引用指向子类对象)
【强制】对象向下转型 不是所有的类都能发生向下转型,发生向下转型要首先向上转型 否则发生 ClasCastException 累类的转换异常错误 。
父类实现子类扩充方法的调用是采用向下转型( 开发一般不这样操作)
没有关系的对象是不能发生转换的,向下转型可能发生错误,所以开发中不使用向下转型
要想正确向下转型需要先将两个类进行判断 用到 instanceof 关键字判断两个类是否属于同类。
instanceof使用语法:
3.简单判断多态存在的三个必要条件
- 继承
- 重写
- 父类引用指向
4.理解多态的作用
当使用多态方式(父类引用指向子类对象)调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
多态的好处:可以使程序有良好的扩展,并可以对所有类的子类对象进行通用处理。
记录时间:(2017年04月07日 20:20 多态体现了java重要的设计思想,必须重视,开发中也多用到)