实现多态
Java面向对象的重要特性:多态
1.认识多态:
多态一词通常是指能够呈现出多种不同的形式或形态。在程序设计术语中,它意味着一个特定类型的变量可以饮用不同类型的对象,并且能自动调用引用的对象的方法,也就是根据作用到的不同的对象类型,响应不同的操作。方法重写是实现多态的基础。
抽象类不能被实例化
子类如果不是抽象类,必须重写抽象类中的全部抽象方法
abstract修饰符不能和final修饰符一起使用
absteact修饰的抽象方法没有方法体
private关键字不能用来修饰抽象方法
2.向上转型:
子类向父类的转换称为向上转型。
语法
< 父类型 >< 引用变量名 >=new< 子类型 >();
将一个父类的引用指向一个子类对象称为向上转型,系统会自动进行类型转换
此时通过父类引用变量调用的方法是子类覆盖或继承了父类的方法,不是父类的方法
此时通过父类引用变量无法调用子类特有的方法
3.向下转型
讲一个指向子类对象的父类引用赋给一个字类的引用,即 将父类类型转换为子类类型,称为向下转型,此时必须进项强制类型转换
语法
<子类型><引用变量名>=(<子类型>)<父类型的引用变量>;
4.instanceof运算符
在向下转型的过程中,如果不是转换为真实子类类型,会出现类型转换异常。
在java中提供了instanceof运算符来进行类型的判断
使用instanceof时,对象的类型必须和instanceof后面的参数所制定的类有继承关系,否则会出现编译错误。instanceof通常和强制类型转换配合使用。
多态的应用
多态的特性:
1.可替换性,多态对已存在的代码具有可替换性
2.可扩充性:多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运作和操作。实际上新家子类更容易获得多态功能
3.接口性:多态是父类箱子类提供了一个共同接口,由子类来具体实现
4.灵活性:多台在应用中体现了灵活多样的操作,提高了效率
5.简化性:多态简化了应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
1.使用父类作为方法的对象
使用父类作为方法的形参,是java中实现和使用多态的主要方式
2.使用父类作为方法的返回值