我正在测试一个程序,我试图在其中实现抽象类的接口。 如下所述
interface Inf{
void display();
}
abstract class InfTst implements Inf{
}
class InterfaceTest extends InfTst{
void display(){
System.out.println("Hello");
}
}
但它显示错误
错误:接口测试中的 display() 无法在 Inf 中实现 display() void display(){
此错误是什么意思以及如何解决它,请帮助我。
当您在接口上省略访问修饰符时,它默认为 public,但在具体类上,它默认为 package-private。
在具体类InterfaceTest
中将方法签名更改为下面
public void display(){..}
在具体类中,默认情况下包是私有的。具体方法意味着,该方法具有完整的定义,因此必须始终是您的方法修饰符是公开的。
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();
}
}
输出 : - 你好