为什么不能将类定义为受保护?
为什么我们不能将类定义为 ?protected
我知道我们不能,但为什么呢?应该有一些具体的原因。
为什么我们不能将类定义为 ?protected
我知道我们不能,但为什么呢?应该有一些具体的原因。
因为这毫无意义。
受保护的类成员(方法或变量)与包私有(默认可见性)类似,只是它也可以从子类访问。
由于Java中没有“子包”或“包继承”之类的概念,因此声明类受保护或包私有将是一回事。
不过,您可以将嵌套类和内部类声明为受保护或私有。
如您所知,默认值用于包级别访问,受保护用于包级别加非包类,但它扩展了此类(此处需要注意的是,只有在类可见时才能扩展该类!让我们这样说:
由于没有办法限制这个类只被几个类子类化(我们不能限制类只被包中/包外部所有可用类中的几个类继承),所以没有对顶级类使用受保护的访问说明符。因此,这是不允许的。