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

发布于 2021-02-02 22:50:26

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

关注者
0
被浏览
72
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    继承是指“类”源自现有的“类”。所以,如果你有一个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中的工作方式完全不同。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看