Java 同一个包中的超类的子类和不同包中的子类有什么区别?
这两句话的区别是什么: AA-与实例的超类位于同一包中的子类可以重写任何未声明为private或final的超类方法 BB-不同包中的子类只能重写声明为public或protected的非final方法 我相信,如果每个方法不是最终的,则可以从其超类重写它Java 同一个包中的超类的子类和不同包中的子类有什么区别?,java,inheritance,overriding,Java,Inheritance,Overriding,这两句话的区别是什么: AA-与实例的超类位于同一包中的子类可以重写任何未声明为private或final的超类方法 BB-不同包中的子类只能重写声明为public或protected的非final方法 我相信,如果每个方法不是最终的,则可以从其超类重写它 在java中,私有方法是“自动最终的,并且对派生类隐藏” 在java中,任何非静态方法都可以是公共的、受保护的或私有的 因此,从句子AA中,我得出结论,只有公共和受保护的超类的方法才能被重写 同样的句子B 所以我搞不清楚两个句子之间的区别是
在java中,私有方法是“自动最终的,并且对派生类隐藏”
在java中,任何非静态方法都可以是公共的、受保护的或私有的
因此,从句子AA中,我得出结论,只有公共和受保护的超类的方法才能被重写
同样的句子B
所以我搞不清楚两个句子之间的区别是什么?你的来源的句子实际上有点不清楚 句子A还包括默认声明的方法。这也称为“包专用”。如果您只是在方法上使用访问修饰符,就会发生这种情况
包之外的类将无法重写它们。AA可以重写包私有方法,而BB不能。您忘记了默认修饰符