gpt4 book ai didi

Java:类和扩展类

转载 作者:行者123 更新时间:2023-11-29 04:57:41 24 4
gpt4 key购买 nike

假设我有一个名为A 的类。我有另一个扩展 A 的类,名为 B

B 包含 A 不包含的名为 BsMethod() 的方法。

假设我声明了一个 A 数组:arrA = new A[10]

然后我分配 arrA[1] = new B();

然后我尝试通过执行 arrA[1].BsMethod()

来调用 BsMethod

这给出了一个错误,指出 arrA 不包含这个方法。我应该更改什么才能使用 arrA[1] 调用 BsMethod

最佳答案

这是失败的,因为在编译时 java 编译器无法将方法与 class A 对象绑定(bind),它无法在 中找到方法 BsMethod() >A 级

您可以将该对象转换为 B 类 并使用它。

((B)arrA[1]).BsMethod();

动态绑定(bind)中,实际的方法调用是在运行时确定的。所以如果你在父类(super class)中有一个方法并且你也在子类中重写它。然后在运行时确定此类方法的实际方法调用。

您可以在此处通过示例阅读更多有关静态和动态绑定(bind)的信息。 Static Binding and Dynamic Binding

关于Java:类和扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33171041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com