【发布时间】:2011-01-28 16:27:37
【问题描述】:
为什么不能使用受保护/私有访问说明符接口声明?
【问题讨论】:
标签: java interface private protected
为什么不能使用受保护/私有访问说明符接口声明?
【问题讨论】:
标签: java interface private protected
你可以声明一个受保护的类,或者实际上是一个私有的——但只能在另一个类中。此时,它对派生自外部类的类可见(在受保护的情况下)或不可见(在私有的情况下):
public class Outer
{
private static class NotVisibleToSubclassesOfOuter {}
protected static class VisibleToSubclassesOfOuter {}
}
【讨论】:
私人课程是什么意思?它不能在这个类之外使用吗?为什么你会有这样的课? (你将如何运行/测试它?)
受保护的类是什么意思?只有扩展它的类才能看到它。因此,当您键入一个类骨架(在世界之外的某个地方)时,它是不可见的,但是当我们说动态扩展类时,它变得可见?
包保护类有意义 - 它对包内的类可见,而不是真正供公众使用。
【讨论】:
为类或接口使用私有或受保护的访问说明符是没有意义的,因为当涉及到实现数据封装的变量或方法时,这两者更有意义。
【讨论】:
Java 中没有访问说明符之类的东西。该术语是“访问修饰符”。
(所以你看到的所有询问有什么区别的面试问题都是无稽之谈。)
【讨论】: