Java:与子类的接口
我正在使用一个带有子类的接口。我没有收到任何错误: 标记“{”上的语法错误,此标记后面应为{” 这条线上有多个标记 -方法断点:TestSubClass[entry]- doSomething(字符串) -令牌“,”上出现语法错误;应为 -标记“(”,)上出现语法错误;应为 -实现TestInterface.doSomething 语法错误,插入“}”以完成类正文 从我的代码中,我认为我已经实现了一切。这是一个额外的Java:与子类的接口,java,Java,我正在使用一个带有子类的接口。我没有收到任何错误: 标记“{”上的语法错误,此标记后面应为{” 这条线上有多个标记 -方法断点:TestSubClass[entry]- doSomething(字符串) -令牌“,”上出现语法错误;应为 -标记“(”,)上出现语法错误;应为 -实现TestInterface.doSomething 语法错误,插入“}”以完成类正文 从我的代码中,我认为我已经实现了一切。这是一个额外的},我不知道为什么。我已经正确地调用了super(),但doSomething方
}
,我不知道为什么。我已经正确地调用了super()
,但doSomething方法仍然存在错误。有什么提示吗
public interface TestInterface {
public void doSomething (String text);
}
public class TestBaseClass {
private String name;
public TestBaseClass() {
}
public TestBaseClass(String name){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class TestSubClass extends TestBaseClass implements TestInterface {
super(name);
public void doSomething (String text){
}
}
super(name);
不能单独存在于TestSubClass
中。构造函数在哪里
public class TestSubClass extends TestBaseClass implements TestInterface{
//This should be called inside a constructor
super(name);
//Ok here
public void doSomething (String text){}
}
这样做:
public class TestSubClass extends TestBaseClass implements TestInterface{
public TestSubClass (){
super(name);
}
public void doSomething (String text){}
}
你不能只在类中调用
super(name);
,它必须在构造函数内部。正如@Kayaman所暗示的,你需要一个构造函数定义来委托给超类的构造函数:
public class TestSubClass extends TestBaseClass implements TestInterface{
public TestSubClass(String name){
super(name);
}
public void doSomething (String text){
}
}
从正确缩进代码开始,这将使代码更加清晰。
public class TestSubClass extends TestBaseClass implements TestInterface{
public TestSubClass(String name){
super(name);
}
public void doSomething (String text){
}
}