01 15Java中级之多态性

故事扮演 提交于 2020-02-28 01:08:10

1 多态性简介

面向对象的第三大主要特征。实现父子类之间的相转换处理。

多态性两种实现模式:
(1)方法的多态性:
|———— 方法重载:同一个方法名称可以根据传入的参数的类型或个数的不同实现不同功能的执行。
|———— 方法覆写:同一个方法可能根据使用子类的不同有不同的实现。
(2)对象的多态性:父子实例之间的转换处理,他有两种模式。
|———— 对象向上转型:父类 父类实例 = 子类实例,自动完成转换;
|———— 对象向下转型:子类 子类实例 = (子类)父类实例,强制完成转换。

从实际的转型处理来讲,大部分情况下考虑最多的一定是对象的向上转型。

2 对象向上转型(接受或返回参数的统一性)

对象转型的处理属于多态性,这一特性必须在继承性的基础上实现。看实例化的是哪个子类,方法有无覆写。

向上转型的主要特点在于可以对参数统一设计。为什么不使用重载呢?还要考虑可维护性的设计,如果父类产生许多子类,每当增加一个子类,都需要重新重载此方法,造成可维护性差。

3 对象向下转型

向下转型的主要特点在于需要使用到子类的一些特殊方法的处理。

向上描述的是一些公共的特征,而向下描述的是子类自己特殊的定义环境。但是我们需要明确的是向下转型并不是一件安全的事情。因为在进行向下转型之前,一定要首先发生向上转型。

以后只要是发生对象向下转型之前一定要首先发生向上转型,两个没有任何关系的实例如果要发生强制转换,那么就会出现“ClassCastException”的异常,所以向下转型并不是一件安全的事情。

4 instanceof关键字

向下转型存在安全隐患的操作,为了保证向下转型的正确性,所以在向下转型之前,往往需要判断某个实例是否某个类的对象,这就需要通过instanceof关键字。使用方法:对象 instanceof 类。

在以后进行一些完善性的程序开发的过程之中,对于转型之前一定要使用instanceof判断。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!