Tag: 访问说明符

Java教程说我可以有一个包 – 私有接口,但我不能

它说,在Java教程“定义接口”中 如果未指定接口是public接口,则只能在与接口相同的程序包中定义的类中访问您的接口。 但是,这个 interface PPInterface { void foo(); void bar(); } class NewClass implements PPInterface { void foo() {} void bar() {} } 在NewClass生成编译器错误,因为我’试图分配较弱的访问权限; 是公开的。 所以文档是错误的,或者我做错了什么,或者我误解了文档? 我想我不必使用界面 – 我喜欢它,因为它保持了良好的组织。

Java中的接口:无法使已实现的方法受到保护或私有

我知道接口必须是公共的。 但是,我不希望这样。 我希望我的实现方法只能从他们自己的包中访问,所以我希望我的实现方法受到保护。 问题是我不能使接口或实现的方法受到保护。 什么是解决方法? 是否存在与此问题相关的设计模式? 从Java指南中,抽象类也不能完成这项工作。

使用接口“无法降低inheritance方法的可见性”的含义

我有两个文件: 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) {表示: 无法降低PrintServiceinheritance方法的可见性。 有人能解释这对我意味着什么吗?