一开始,我就是一个初学者,所以这个问题可能看起来很初级。
每当我使用“扩展”并尝试编译时,我都会得到如下这样的错误消息:
BoAMC.java:7: error: constructor Scout in class Scout cannot be applied to given types;
olaf = new Scout("Olaf");
^
required: no arguments
found: String
reason: actual and formal argument lists differ in length
./Scout.java:1: error: constructor PClass in class PClass cannot be applied to given types;
public class Scout extends PClass{
^
required: String
found: no arguments
reason: actual and formal argument lists differ in length
./Scout.java:4: error: name has private access in PClass
System.out.print("\n\n "+name+" is out off the box.");
^
3 errors
有问题的代码:
public class BoAMC{
private Scout olaf;
public void play(){
olaf = new Scout("Olaf");
olaf.test(2);
}
public static void main(String [] args){
BoAMC me = new BoAMC();
me.play();
System.out.print("\n\n --End-- \n\n");
}
}
public class PClass{
private String name;
public PClass(String nn){
name = nn;
}
public void test(int i){
System.out.print("\n\n We do a little testing. "+name+" "+i+" out.");
}
}
public class Scout extends PClass{
public void scoot(){
System.out.print("\n\n "+name+" is out off the box.");
}
}
我确实知道参数(在本例中是值为"Olaf“的字符串)有问题,但我不知道具体是什么问题。此外,我没有得到第二个错误消息。
如前所述,我是一个初学者。我已经找到了几篇有类似问题的帖子,但无法理解解决方案。很多人都写过一些关于"super()“的东西。我既不知道这段代码应该做什么,也不知道它是否与我的问题相关。
-
解决方案:使用"protected String name“和"super(nn)”解决了这个问题。谢谢你们两位!
发布于 2021-11-13 10:06:16
父类的构造函数不会被子类继承。添加:
Scout{
public Scout(String nn){
super(nn);
}
}
https://stackoverflow.com/questions/69953085
复制相似问题