
当父类的方法为默认的访问修饰符时如:void method(){},
此时没在同包下的子类是无法访问的method(),也就是说子类无法重写父类的method()方法,此时添加@Override注解会报错.
注意:父类和子类拥有同名,同参数的方法,但是访问修饰符为默认,父类和子类不在同一个包下,此时当父类引用指向子类时 候,应该注意,本想是要调用子类的方法却调用了父类中重名的方法.
A a = new AA();
a.say();
A 和 AA 同包,AA继承A,say()为默认访问修饰符,此时a.say() 执行的是 AA中的 say方法。
A a = new AA2();
a.say();
A 和 AA 2 不同包,AA2继承A,say()为默认访问修饰符,此时a.say() 执行的是 A 中的 say方法。
本文探讨了Java中默认访问修饰符对继承的影响,特别是当父类和子类不在同一包内时,子类无法重写父类的默认访问级别方法,这可能导致预期外的行为。文章通过具体代码示例说明了这一现象。
1014

被折叠的 条评论
为什么被折叠?



