我是靠谱客的博主 务实小蘑菇,最近开发中收集的这篇文章主要介绍多态、向上(向下)类型转换、instanceof运算符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

多态:同一个引用类型,使用不同的实例而执行不同操作

一、多态可以减少类中的代码量,

可以提高代码的可扩展性和可维护性。


二、实现多态的三个条件:

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   类或者接口

该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为truefalse.



!!!在进行引用类型转换时,先通过instanceof运算符进行类型判断,再进行相应的强制类型转换,这样可以有效的避免出现类型转换异常。

PS:即先判断,后强转!!!

1.使用时要注意上下级关系

2.instanceof通常和强制类型转换结合使用。

最后

以上就是务实小蘑菇为你收集整理的多态、向上(向下)类型转换、instanceof运算符的全部内容,希望文章能够帮你解决多态、向上(向下)类型转换、instanceof运算符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部