实现抽象类Java的接口

时间:2017-01-11 07:56:10

标签: java interface abstract-class

我正在测试一个程序,我试图在抽象类上实现一个接口。如下所示

 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(){

这个错误是什么意思以及解决方法,请帮助我。

2 个答案:

答案 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