1.多态性简介
多态性是面向对象中的第三大主要特征,多态性是在继承性的基础之上扩展出来的概念,也就是说可以实现父子类之间的互相转换处理。
多态性的基本概念:
在Java中对于多态性有两种实现的模式:
- 方法的多态性:
- 方法的重载:同一个方法名称可以根据传入的参数类型或个数的不同实现不同功能的执行;
- 方法的覆写:同一个方法可能根据使用子类的不同,有不同的实现;
- 对象的多态性:父子实例之间的转换处理,它有两种模式:
- 对象的向上转型:父类 父类实例 = 子类实例、自动完成;
- 对象的向下转型:子类 子类实例 = (子类)父类实例、强制完成转换;
从实际的转型处理来讲,大部分情况下考虑最多的一定是对象的向上转型(90%),对于对象的向下转型往往都在使用子类特殊功能(子类可以对父类进行功能扩充)的时候要采用向下转型(3%),还有些时候是不会考虑转型的(7%,例如String类)。
2.instanceof关键字
向下转型本身是一件存在安全隐患的操作,因为在进行向下转型之前一定要首先发生向上转型。所以为了保证向下转型的正确性,往往需要在转型之前进行判断,判断某个实例是否是某个类的对象,这个就需要通过instanceof语法来实现。
语法: 对象 instanceof 类: 该判断将返回一个boolean类型,如果是true表示实例是指定类对象。