我有两个文件:
public interface PrintService {
void print(PrintDetails details);
class PrintDetails {
private String printTemplate;
}
public interface Task {
String ACTION = "print";
}
}
和
public class A implements PrintService {
void print(PrintDetails details) {
System.out.println("printing: " + details);
}
String action = PrintService.Task.ACTION;
}
我认为代码看起来没问题,但是我在第二个文件中得到了一个错误 void print(PrintDetails details) {
这说明:
无法降低从中继承的方法的可见性 PrintService
.
有人能解释一下这对我意味着什么吗?
2条答案
按热度按时间2izufjch1#
在接口实现的类中公开methode,因为在接口中,默认情况下每个方法都是公开的和抽象的。
c9qzyr3d2#
在java接口中,每个方法都是默认的
public
:接口主体中的每个方法声明都是隐式抽象的,因此其主体总是用分号表示,而不是块。
接口体中的每个方法声明都是隐式公共的。[..]
在实现类中,不允许通过不指定访问修饰符来降低可见性:
您指定的是访问级别默认值,其可见性低于
public
.