the - public interface java




含有接口的“不能降低继承方法的可视性”的含义 (2)

我有两个文件:

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的继承方法的可见性。

有人能解释这对我意味着什么吗?


在接口实现的类中使方法公开,因为在接口默认情况下每个方法都是公共的和抽象的。


在Java接口中,每个方法默认为public

接口体中的每个方法声明都是隐式抽象的,所以它的主体总是用分号而不是块来表示。

接口主体中的每个方法声明都是隐式公开的。 [..]

在实现类中,不允许降低可见性,并且不指定访问修饰符:

void print(){..}

您正在指定访问级别的默认设置 ,其可见度低于public







access-specifier