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

什么是动态方法分派?它与继承有何关系?

葛晔
2023-03-14
问题内容

Java中的 动态调度 是什么意思,为什么在继承的上下文中需要它?


问题答案:

Java […]中的 动态调度 是什么意思?

将“调度”视为“确定要调用的方法”。

“动态”部分只是说它是在运行时确定的。即,在运行时确定要调用的方法。

为什么在继承的背景下需要它

没有继承/多态性,我们将不需要此。表达式的类型在编译时是可确定的,并且在编译程序时将知道在运行时将调用哪种方法。

对于继承/多态,我们不知道表达式的具体运行时类型,因此必须在运行时“动态”确定要调用的方法。

没有动态分派,虚拟方法将毫无意义,这对于抽象和封装至关重要。

推荐阅读:维基百科上有关动态调度的文章



 类似资料:
  • 问题内容: java中的继承和委托有什么区别? 如何在我的项目中使用以下示例?请你指导我。我了解继承,但对委托没有太多了解。因此,请给出适当的理由。我为什么要用这个? 问题答案: 当您委托时,您只是在调用一个知道必须做什么的类。您并不真正在乎它是 如何 执行的,您所 关心的 只是您正在调用的类知道需要做什么。 如果我是您,我将创建一个接口并命名该接口(或类似名称的接口),该接口具有一个名为的方法。

  • 问题内容: 我们如何实现动态存储过程,它们是否与sql server中的动态函数和动态查询相关? 请赐教… 问题答案: 只有动态SQL涉及创建T-SQL文本并使用(或简单地)执行T- SQL文本的实践:动态SQL的诅咒和祝福。 存储过程可以执行动态SQL,而函数则不能。

  • 问题内容: 最近,我看到了带有“ webkit”标签的问题。这些问题通常是与CSS,jQuery,布局,跨浏览器兼容性问题等有关的基于Web的问题。 那么,这是什么“ Webkit”,它与CSS有什么关系?我还注意到各种网站的源代码中有很多属性。这两个有关系吗? 更新资料 因此,从到目前为止的答案来看… WebKit是Safari / Chrome的HTML / CSS Web浏览器呈现引擎。是否

  • 我知道在Java中,静态方法和实例方法一样是继承的,不同的是,当它们被重新声明时,父实现是隐藏的,而不是重写的。好吧,这有道理。但是,Java教程指出 接口中的静态方法从不继承。 然而,

  • 我有一个扩展了B类的a类。 A是这样定义的,它也覆盖了B的方法: B是这样定义的: 因此,如果我初始化A的一个对象,构造函数将调用调用方法doSomething()的超类之一。但哪一个会被处决?B的实现还是A中被重写的实现?

  • 我有一个典型的问题,什么是更好的,我认为答案总是视情况而定,但我还是想澄清一下。所以有两种方法: 逻辑是: 我知道由于类型擦除,方法签名存在冲突,所以我的问题不是“为什么我不能同时拥有这两个方法?”,而是“你会选择哪种方法?”。