15-多态性

多态性

多态性是面向对象中的第三大主要特征,多态是在继承性的基础上扩展出来的概念,也就是说可以实现父子类之间的互相转换处理;

多态性简介

多态性的基本概念:
在java中对于多态性有两种实现的模式:

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

从实际的转型处理来讲,大部分情况下考虑的最多的一定是对象的向上转型(90%)、对于对象的向下转型往往都在使用子类特殊功能(子类可以对父类进行功能扩充)的时候,还有一些情况下是不会考虑转型的(String类)。

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

对象转型的处理属于多态性,而这一特性必须在继承性的基础上实现;
向上转型有什么主要的用处呢?
向上转型可以实现对参数的统一设计,为何不使用重载解决是因为要做出可维护的设计

对象向下转型

向上描述的是一些公共的特征,而向下描述的是子类自己特殊的定义环境。
但是需要明确的是并不是一件安全的事情,因为在进行向下转型之前一定要先向上转型;
向下转型的主要意义是调用子类功能。

instanceo关键字

为了保证向下转型的正确性,往往需要在转型之前进行判断,判断某个实例是否是某个类的对象,通过instanceof语法实现;
该判断返回一个boolean类型,如果是True表示实例是指定类对象;
对象 instanceof 类
如果要执行对象的向下转型,最好先判断一次;

猜你喜欢

转载自blog.csdn.net/MARVEL_3000/article/details/111400659