Java中父类的私有方法不被子类重写
从上篇文章(https://blog.csdn.net/ssyes123/article/details/79682583)中,提到父类中的私有方法在子类中拥有不能被访问,那么父类的私有方法能不能被子类重写呢?
答案是:既然都无法访问,当然就无法重写了。
代码如下:
public class Test {
public static void main(String[] args) {
Cat c1 = new Cat();
c1.function();
}
}
class Animal {
// 父类的私有方法,不被子类看见
private void show() {
System.out.println(x);
}
}
class Cat extends Animal {
public void function() {
show();
}
// 此处为子类自定义,而不叫重写,因为子类无法看到且无法访问父类的私有show()方法
private void show() {
System.out.println("子类的私有方法");
System.out.println("--------------");
}
}
打印结果:
子类的私有方法
--------------
结论:
(1)父类的私有方法,可理解为被子类继承,但是不被子类可见,不可访问。
(2)子类和父类的同名私有方法,为子类自定义方法,不是重写父类的私有方法。
(3)解释:A继承A爸的密码箱,但是见不到密码箱(大小,颜色,重量等都不知道),A如果要自己做个密码箱,不是仿照A爸的密码箱,而是A特有的密码箱(大小,颜色,重量都和A爸不一样)。