多态
多态即事物的多种多样的状态。
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表达式。这个函数避免了大量重复性检查变量类型 的函数的定义。
本文深入解析多态概念,包括重载、重写及父类引用指向子类对象的现象。通过实例展示向上转型与向下转型的过程,以及如何在编译与运行时确定方法调用。同时,介绍了instanceof函数的使用,简化类型检测。
285

被折叠的 条评论
为什么被折叠?



