Java继承和多态性之间的主要区别是什么?

今天在模块公开书考试结束时,我被问到了这个问题,结果发现自己迷路了。我正在阅读Head first Java,这两个定义似乎完全相同。我只是想知道我自己的主要区别是什么。我知道有很多与此类似的问题,但是我没有看到能提供确定答案的问题。

回答:

继承是指“类”源自现有的“类”。所以,如果你有一个Person类,那么你有一个Student扩展类Person,Student 继承了所有的事情Person了。你在“个人”中的字段/方法上放置的访问修饰符有一些详细信息,但这是基本思想。例如,如果你在上有一个私有字段PersonStudent则不会看到它,因为它的私有字段和私有字段对子类不可见。

多态性涉及程序如何决定应使用的方法,具体取决于程序具有的类型。如果你有一个Person,其中有一个read方法,而你有一个Student扩展Person,有其自己的实现read,则由运行时为你确定调用哪个方法,这取决于你有一个Person还是一个Student。这有点棘手,但是如果你执行类似的操作

Person p = new Student();

p.read();

调用Studentread方法。多数民众赞成在行动中。你可以进行分配,因为a Student 是a Person,但是运行时足够聪明,可以知道a的实际类型p是Student。

请注意,语言之间的细节有所不同。例如,你可以在javascript中进行继承,但是它与Java中的工作方式完全不同。

以上是 Java继承和多态性之间的主要区别是什么? 的全部内容, 来源链接: utcz.com/qa/427991.html

回到顶部