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

什么是Java中的虚拟方法调用?

姜景焕
2023-03-14
问题内容

我已经在某些计算机科学测试中看到了下一段,希望我能在这里对它的含义有一个很好的解释,因为我用它搜索了一个小时,却找不到任何东西。

“当我们说Java语言具有 虚拟方法调用时 ,是指在Java应用程序中,执行的方法由运行时的对象类型决定”

这是什么意思?谁能更好地解释它?


问题答案:

这些行的作者使用的C ++术语virtual

更好的术语是动态绑定/动态调度。

这意味着,对象的动态类型是“选择”将要调用的方法,而不是静态类型。

例如:[伪代码]:

class A {
  public void foo() { }
}
class B extends A { 
  public void foo() { }
}

调用时:

A obj = new B();
obj.foo();

B.foo()将被调用,而不是NOT A.foo(),因为动态类型objB



 类似资料:
  • 问题内容: 我了解什么是Java方法调用,并使用它练习了很多示例。 我想知道这个概念的实际情况或需要。如果有人能给出使用它的真实场景,这将有很大帮助,如果没有这个概念,将会发生什么? 问题答案: 这是一个例子。假设我们有2个类别: 如果我们现在执行以下操作: 我们得到结果 如果Java没有,它将在编译时确定要调用的是属于该类的。既然不是,而是在运行时根据所指向的实际类来确定,则可以得到以上结果。

  • 问题内容: 在面向对象的范例中, 虚 函数或虚方法是一种函数或方法,其行为可以在继承类内被具有相同签名的函数覆盖以提供 多态行为 。 根据定义,除 final和private方法 外,Java中的每个非静态方法默认都是 虚拟 方法 。无法为 多态 行为继承的方法 不是 虚拟方法。 Java中的抽象类不过是等同于C ++的纯虚方法。 为什么我们说Java中的静态方法不是虚拟方法?即使我们可以重写静态

  • 简单地说,虚拟机(Virtual Machine)就是允许我们在当前操作系统中运行其他操作系统的软件,本质上和 VS、QQ 这些应用程序一样。 所以,只要我们在电脑(PC 或笔记本等)上安装好虚拟机软件,就可以模拟出来若干台相互独立的虚拟 PC 设备,每一个都如何一台真实的计算机。在此基础上,我们可以给每台虚拟的 PC 设备安装指定的操作系统,这样就可以实现在一台电脑上同时运行多个操作系统。 另外

  • 本文向大家介绍什么是虚拟DOM?相关面试题,主要包含被问及什么是虚拟DOM?时的应答技巧和注意事项,需要的朋友参考一下 虚拟 dom 是相对于浏览器所渲染出来的真实 dom 的,在react,vue等技术出现之前,我们要改变页面展示的内容只能通过遍历查询 dom 树的方式找到需要修改的 dom 然后修改样式行为或者结构,来达到更新 ui 的目的。 这种方式相当消耗计算资源,因为每次查询 dom 几

  • 问题内容: 在继承中虚拟函数如何在后台工作?编译器是否特别对待虚拟函数? 问题答案: 是的,编译器和运行时对虚拟方法的处理方式有所不同。JVM专门利用虚拟方法表进行虚拟方法分配: 对象的调度表将包含对象的动态绑定方法的地址。通过从对象的分派表中获取方法的地址来执行方法调用。属于同一类的所有对象的分发表都是相同的,因此通常在它们之间共享。属于类型兼容类的对象(例如,继承层次结构中的同级对象)将具有具

  • 问题内容: 我正在尝试获取一些信息,但我的应用程序崩溃并显示以下消息: 这是代码: 这是一个纯课。的哪个调用不包含this 。我做错了吗?应始终位于内吗? 根据要求整体: 问题答案: 改成 您为布局充气。视图属于膨胀的布局。因此,使用view对象在中初始化视图 片段由活动主持 您可以在视图中使用和初始化 还在中初始化TextView 。由于Asynctask是一个内部类,因此您可以在那里更新ui