gpt4 book ai didi

java - 如何访问抽象类中的方法

转载 作者:行者123 更新时间:2023-12-01 18:18:45 25 4
gpt4 key购买 nike

我有一个抽象类 NoiseMaker,其中有一个抽象方法 makeNoise,我想从 Test 类访问它。我需要将一些代码放入 doSomething 方法中。我只是不知道该写什么。我想要的输出是“尖叫负载:ROAR”

public interface MakeNoiser{
public void doSomething();
}



public class Test implements MakeNoiser {
public Test() {}

public void setNoiseMaker(NoiceMaker nm) {
nm.makeNoise();
}

@Override
public void doSomething() {
//What to write in this method to print out "ROAR"?
}

public static void main(String[] args) {
Test t = new Test();
t.setNoiseMaker(new Scream("ROAR"));
t.doSomething();
}
}



public abstract class NoiseMaker {
private String noiseName;

public NoiseMaker(String noiseName) {
this.noiseName= noiseName;
}

public abstract void makeNoise();

public String getNoiseName() {
return noiseName;
}
}



public class Scream extends NoiseMaker {
public Scream(String noiseName) {
super(noiseName);
}

@Override
public void makeNoise() {
System.out.println("Scream out load: ");
}
}

最佳答案

你确实就在那里。您只是忘记在重写的方法中打印声音。

@Override
public void makeNoise() {
System.out.println("Scream out load: " + getNoiseName());
}

doSomethingNoiseMaker 没有任何关系,所以我不确定如果您只想打印的话为什么需要该函数消除一些噪音。

我会将拼写错误保留为您需要解决的真正问题(NoiceMaker 而不是 NoiseMaker),但在添加该错误后,其余代码应该可以工作getNoiseName() 调用。

关于java - 如何访问抽象类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28158559/

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