当前位置: 首页 > 面试题库 >

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

濮阳唯
2023-03-14
问题内容

今天在模块公开书考试结束时,我被问到了这个问题,结果发现自己迷路了。我正在阅读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中的工作方式完全不同。



 类似资料:
  • 本文向大家介绍Kafka和Flume之间的主要区别是什么?相关面试题,主要包含被问及Kafka和Flume之间的主要区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:Kafka和Flume之间的主要区别是: 工具类型 Apache Kafka——Kafka是面向多个生产商和消费者的通用工具。 Apache Flume——Flume被认为是特定应用程序的专用工具。 复制功能 Apache

  • 问题内容: 网上似乎充满了Velocity和FreeMarker之间的比较,并且它们似乎相当等效。但是,StringTemplate和FreeMarker之间似乎几乎没有比较! 那么,StringTemplate和FreeMarker之间的主要区别是什么? 我对它们的用法是仅生成HTML页面。在这两种方法中,我曾期望FreeMarker更合适,功能更强大,因为这似乎是更常见的一种- 但快速浏览一下

  • 问题内容: 创建表: 结果: 请让我知道Varchar2和char有什么区别?我们什么时候都使用? 问题答案: 显示差异的简单示例: CHAR对于字符长度始终固定的表达式很有用,例如美国各州的邮政编码,例如CA,NY,FL,TX

  • 问题内容: 我想问一下您最喜欢JS的软件包管理器是什么?我看到了一些关于yarn和npm的文章。但是我不确定有什么对我更好。我刚刚开始学习JS。 现在,yarn和npm之间的差异对我来说就像可乐品牌之间的差异。 问题答案: 有时候我们只有一个,但是解决依赖性和缓存问题太多,以至于另一个工具诞生了()。通常,它使用本地缓存来解决依赖关系,例如,在运行几乎总是在同一环境中运行的CI作业时,这非常关键,

  • 问题内容: Java中的Collection和Collections之间的主要区别是什么? 问题答案: 是大多数集合类的基本接口,而是实用程序类。我建议您阅读文档。

  • 本文向大家介绍综合属性和继承属性之间的区别,包括了综合属性和继承属性之间的区别的使用技巧和注意事项,需要的朋友参考一下 合成属性和继承属性都是语言语义的一部分,该语言为其构造提供含义,例如标记和语法结构。语义有助于解释符号,符号的类型及其相互之间的关系,其分析可判断源程序中构造的语法结构是否衍生出任何含义。现在,基于属性的特征,我们可以区分综合属性和继承属性 以下是合成属性和继承属性之间的重要区别