为什么最终的Java类中允许使用受保护的成员?
问题内容:
为什么在最终课程中允许受保护的成员?
这不应该是编译时错误吗?
编辑:正如人们指出的那样,您可以使用默认修饰符来获得相同的程序包访问权限。它的行为应该完全相同,因为protected是默认+子类,而final修饰符明确地拒绝了子类,因此我认为答案不只是提供相同的程序包访问。
问题答案:
该protected
改性剂是必要的方法其覆盖protected
从基类的方法,在没有那些构件暴露于所述public
。
通常,您可以引入很多不必要的规则来取缔不合理的组合(例如protected static
),但这并没有太大帮助。你不能取缔愚蠢。