多态
1.认识多态
多态一词的通常含义是指能够呈现出多种不同的形式或形态。而在程序员设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,
并且能自动的调用引用对象的方法,也就是根据作用到的不同对象类型,响应不同的操作。
2.向上转型
子类向父类的转换称为向上转型。
语法格式如下
<父类型><引用变量名>=new <子类型>();
子类转换成父类时的规则
将一个父类的引用指向一个子类对象称为向上转型,系统会自动进行类型转换。
此时通过父类引用变量调用的方法是子类覆盖或继承了父类的方法,不是父类的方法。
此时通过父类引用变量无法调用子类特有的方法。
3.向下转型
将一个指向子类对象的父类引用赋给一个子类的引用,即将父类类型转换为子类类型,称为向下转换。
语法格式如下
<子类型><引用变量名>=(<子类型>)<父类型的引用变量>;
4.instanceof运算符
在向下转型过程中,如果不是转换为真实子类类型,会出现类型转换异常。
使用instanceof时,对象的类型必须和instanceof后面的参数所指定的类有继承关系,否则会出现编译错误。类如代码“pet instanceof String”,会出现编译错误。
instanceof通常和强制类型转换结合使用。
多态的应用
多态的优势
1)可替换性:多态对已存在的代码具有可替换性
2)可扩充性;多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。
3)接口性:多态是父类向子类提供一个共同接口,由子类来具体实现
4)灵活性:多态在应用中体现了灵活多样的操作, 提高了使用效率
5)简化性:多态简化的应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,,这个特点有位突出和重要。
使用父类作为方法的形象
使用父类作为方法的形参是java中实现和使用多态的主要方法
使用父类作为方法的返回值
使用父类作为方法的返回值是java中实现和使用多态的主要形式