问题标签 [static-binding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java 重载和重写的方法
在下面的程序中,我在类 A 中的一个方法重载了 3 次,然后在子类 B 中,所有 3 个重载方法都被覆盖。
obj3 是一个具有引用类型 A(超类)和对象类型 B(子类)的对象,它在执行时从 B 调用方法,这是预期的行为。
由于此代码中都存在重载和覆盖,这是否意味着它在编译时执行静态绑定(到 A 类中的匹配方法),然后在运行时执行动态绑定(到 B 类中的方法)。它们可以同时发生吗?
我的假设是,这是动态绑定的经典案例,因为我认为“绑定”是一种永久性操作,但同行建议它是一起的(首先是静态的,然后是动态的)。
java - Java可以对变量进行动态类型绑定吗?
变量可以在Java中具有动态类型绑定吗?我知道方法可以,但我不认为变量可以,因为每个变量在创建时都必须有一个类型声明,例如 int、double 或 float。如果他们可以,那将如何做?谢谢。
c++ - C++中静态和动态绑定的案例
以下代码有 4 个类:Base1、Derived1(派生自 Base1)、Base2、Derived2(派生自 Base2)。两个基类都有整数 data1 和 display_data() 函数。两个派生类都有整数 data1 和 data2,以及 display_data() 函数。
我在我的代码中尝试了 4 种情况,可以在 main 函数中看到。我无法确定其中哪些是静态绑定的情况,哪些是动态的。我需要一些帮助。我也想知道,这些情况中的哪些可以被认为是“函数覆盖”。
代码:
输出:
c++ - C++:什么时候方法重定义优于虚拟方法覆盖?
当对象不是动态创建时,虚拟方法是否静态绑定?
如果虚拟方法具有两全其美(需要时静态和动态绑定),那么拥有非虚拟方法的意义何在?在什么情况下,人们更喜欢使用它们而不是虚拟的?
为了更好地解释,我包含了一个简单的类层次结构。
基类:
派生类:
java - 为什么接受子类对象的方法不能通过超类的引用识别子类的对象?
我有两个类(Vector 和 Stack),一个扩展了另一个。Resourse 类有四种方法。
当我通过引用超类的子类对象时,它调用接受超类对象而不是子类的方法?为什么会发生这种情况?
输出 :