gpt4 book ai didi

java - 从子类调用方法

转载 作者:行者123 更新时间:2023-12-02 11:16:48 25 4
gpt4 key购买 nike

我正在尝试这样的事情:

public class Dog {
}

public class Cat extends Dog {
private void mew() {
}
}

Dog d = new Dog();
d.mew();

在运行时 d 将由于其他方法而包含一个 cat 对象,但我无法编译。

最佳答案

应使用 Cat 实例初始化 Dog(或使用 SpecialStone 实例初始化 Stone):

Stone s = new SpecialStone();

然后您可以调用 SpecialStone 上的方法(仅当您通过子类初始化父类时这才有效):

if (s instanceof SpecialStone) {
(SpecialStone)s.specialMethod();
}

另一种方法是使用多态性:

public class Stone {
public void specialMethod() {

}
}

public class SpecialStone {
@Override
public void specialMethod() {
}
}

但它会将 specialMethod 添加到 Stone 的每个实例

关于java - 从子类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50209203/

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