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

为什么受保护的成员被允许进入终极课堂?

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

编辑:正如人们指出的,您可以使用默认修饰符来获取相同的包访问.它应该以完全相同的方式运行,因为protected只是默认的子类,最后的修饰符显式地拒绝子类化,所以我认为答案不仅仅是提供相同的包访问.

最佳答案
受保护的修饰符对于覆盖基类的受保护方法的方法是必需的,而不会将这些成员暴露给公众.

一般来说,您可能会引入大量不必要的规则来取缔不合理的组合(例如受保护的静态),但这并不足够.你不能说愚蠢.

转载注明原文:为什么在最终的java类中允许受保护的成员? - 代码日志