为什么最终的Java类中允许使用受保护的成员?


问题内容

为什么在最终课程中允许受保护的成员?

这不应该是编译时错误吗?

编辑:正如人们指出的那样,您可以使用默认修饰符来获得相同的程序包访问权限。它的行为应该完全相同,因为protected是默认+子类,而final修饰符明确地拒绝了子类,因此我认为答案不只是提供相同的程序包访问。


问题答案:

protected改性剂是必要的方法其覆盖protected从基类的方法,在没有那些构件暴露于所述public

通常,您可以引入很多不必要的规则来取缔不合理的组合(例如protected static),但这并没有太大帮助。你不能取缔愚蠢。