Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

java多态,父类的引用指向子类的对象,instanceof函数

多态

多态即事物的多种多样的状态。

1.重载重写都是多态的表现。重载重写此处不再赘述。
2.父类的引用指向子类的对象

下面通过几个实例来详细讲解这个知识点:
(1)定义父类Person
在这里插入图片描述
(2)定义子类Student
在这里插入图片描述
(3)定义测试类Test
在这里插入图片描述
Person person = new Student();这里为是”向上转型“,即父类的引用指向子类的对象。(引用的知识请看前几篇博文,此处不再赘述)。

通过person调用方法调用的是Person类的方法还是Student类?
通过输入person.的提示我们知道要想编译通过,应该调用Person类的方法。如下
在这里插入图片描述
编译通过。
在这里插入图片描述
运行的是子类重写的方法。

总结:编译的时候看赋值等号的左边,运行的时候看等号右边。

那么怎么才能在Person person = new Student();这句下利用person调用Student类的方法?
答案是”向下转型“,实际上就是强制类型转化,代码如下
在这里插入图片描述
这样就OK了。

instanceof函数

下面为这个函数的使用方法例子:
在这里插入图片描述
运行中关键在于:
传参Person p = student;然后instanceof检测参数属于Student 类,进入if表达式。这个函数避免了大量重复性检查变量类型 的函数的定义。

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: Java学习的正确打开方式

下一篇: 阿里巴巴向全社会开放黑科技:“泡在水里”的服务器

精华推荐