在Java教程“定义接口”中,它说
如果未指定interface为
public
,则只有与该接口在同一包中定义的类才能访问该接口。
但是这个
interface PPInterface {
void foo();
void bar();
}
class NewClass implements PPInterface {
void foo() {}
void bar() {}
}
生成编译器错误是NewClass
因为我试图分配较弱的访问权限;是公开的”。那么文档有误,或者我做错了什么,或者我对文档有误解?
我想我不必使用接口-我喜欢它,因为它可以使事情井井有条。
接口本身可以是包私有的,而不是其中的方法。您可以定义一个只能在其定义的包中使用(按名称)的public
接口,但是其方法类似于所有接口方法。如果类实现该接口,则其定义的方法必须为public
。这里的关键是接口
类型 在包外部不可见,而不是方法。文档并不正确,因为使用接口中定义的方法与使用接口本身不同。
还应注意,在定义接口时,public
在方法定义之前不添加内容不会更改任何内容,因为方法都是隐式的public
。
如果您已实现接口的类本身是程序包私有的,public
则接口方法的强弱显然不是问题。如果单继承问题不会对您造成影响,您当然也可以使用抽象类而不是接口:
abstract class Whatever {
abstract void foo();
abstract void bar();
}
问题内容: 我想知道我们可以在一个接口内定义一个接口。喜欢 这是面试中提出的问题。任何实时使用。 问题答案: 是的,我们可以做到。Java中的嵌套接口的定义如下: 嵌套接口是其声明出现在另一个类或接口的主体内的任何接口。顶级接口是不是嵌套接口的接口。 请参阅此为多。 进一步 … 一个原因可能是外部接口具有一种将回调实现作为参数的方法。在这种情况下,嵌套接口是回调方法必须实现的协定。我没有理由在顶层
我基本上想要一个EC2,一个接口在公共子网,一个在私有子网。我应该能够通过公共接口从外界SSH,私有网络将用于与私有网络中的数据库通信。 在地形上。。。 我在该 VPC 中创建了一个 VPC,两个子网(一个公共子网,一个私有子网)。 创建了一个互联网网关,即 VPC 中的路由表,其路由为 0.0.0.0/0 至 IGW 已在与公有子网和路由表之间创建路由关联。 已创建一个 EC2 实例,其中一个接
启动层java.lang.module.FindException初始化时出错:读取模块:d:\java\javatutorial\bin时出错,原因是:java.lang.module.invalidmoduleDescriptoreXception:在顶级目录中发现了learnjava.class(模块中不允许使用未命名的包)
我想与Firebase连接,但我有一个错误:"无法解析Android应用程序模块gradleconfig.resolvegradle构建问题和/或重新同步."和我检查我的gradle.
这是我得到的错误: 清单合并失败:属性元数据#android.support.VERSION@valuevalue=(26.0.2)from[com.android.support: design: 26.0.2]AndreidManifest.xml:28: 13-35也存在于[com.android.support: appcompat-v7:26.1.0]AndreidManifest.xm
使用最新版本Android的Android设备在连接时不使用公共地址。相反,它们使用随机地址。这是BLE规范的一部分。出于隐私的目的,除了公开的设备地址之外,还有随机的设备地址。新版Android在连接外设时使用随机地址。(引文来源) 我知道我的Android平板电脑使用的是随机地址。为此,我制作了一个程序来验证这一信息,它实际上起作用了(幸运的是)。 所以我的BLE公共寻址设备可以通过接收它的配