概述
多态:同一个引用类型,使用不同的实例而执行不同操作
一、多态可以减少类中的代码量,
可以提高代码的可扩展性和可维护性。
二、实现多态的三个条件:
1.继承的存在(继承是多态的基础,没有继承就没有多态)
2.子类重写父类的方法(多态下调用子类重写后的方法)
3.父类引用变量指向子类对象(子类到父类的类型转换)
多态形式1:父类Pet做形参,子类Dog做实参
多态形式2:父类做类型,子类实例化。
@向上转型——子类转父类,属于自动类型转换
Pet pet=new Dog();
Pet.eat();
向上转型的规则:
*将一个父类的引用指向一个子类对象,自动进行类型转换;
*此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法。
*此时通过父类引用变量无法调用子类特有的方法。
@向下转型——父类转子类,属于强制类型转换
基本数据类型之间进行强制类型转换是对被强制转换类型“做手术”。例如:
Double d=5 ;
Int a =(int) 5.0;
引用数据类型之间强制转换时是还原子类的真实面目,而不是给子类“做手术”,例如:
Pet pet=new Dog();
Dog dog=(Dog)pet;//正确
Penguin pgn=(Penguin)pet;//错误
(这就要用到instanceof运算符进行强制类型转换)
多态形式3:父类作为方法返回子,子类实例化。
三、instanceof运算符
语法: 对象 instanceof 类或者接口
该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false.
!!!在进行引用类型转换时,先通过instanceof运算符进行类型判断,再进行相应的强制类型转换,这样可以有效的避免出现类型转换异常。
PS:即先判断,后强转!!!
1.使用时要注意上下级关系
2.instanceof通常和强制类型转换结合使用。
最后
以上就是务实小蘑菇为你收集整理的多态、向上(向下)类型转换、instanceof运算符的全部内容,希望文章能够帮你解决多态、向上(向下)类型转换、instanceof运算符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复