我正在测试一个程序,我试图在抽象类上实现一个接口。如下所示
interface Inf{
void display();
}
abstract class InfTst implements Inf{
}
class InterfaceTest extends InfTst{
void display(){
System.out.println("Hello");
}
}
但显示错误
错误:InterfaceTest中的display()无法在Inf中实现display() void display(){
这个错误是什么意思以及解决方法,请帮助我。
答案 0 :(得分:4)
当您在界面上省略访问修饰符时,它默认为public,但在具体类上,它默认为package-private。
在具体课程InterfaceTest
public void display(){..}
答案 1 :(得分:0)
默认情况下,具体类中的包是私有的。一个具体的方法意味着,该方法具有完整的定义所以必须是你的方法修饰符总是公开的。
package domain;
interface Inf {
void display();
}
abstract class InfTst implements Inf {
}
class InterfaceTest extends InfTst {
public void display() {
System.out.println("Hello");
}
}
public class StackOverFlow extends InterfaceTest {
public static void main(String[] args) {
StackOverFlow sof = new StackOverFlow();
sof.display();
}
}
输出: - Hello