Java中父类的私有方法不被子类重写java
从上篇文章(https://blog.csdn.net/ssyes123/article/details/79682583)中,提到父类中的私有方法在子类中拥有不能被访问,那么父类的私有方法能不能被子类重写呢?.net
答案是:既然都没法访问,固然就没法重写了。code
代码以下:blog
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("--------------"); } }
打印结果:继承
子类的私有方法 --------------
结论:io
(1)父类的私有方法,可理解为被子类继承,可是不被子类可见,不可访问。function
(2)子类和父类的同名私有方法,为子类自定义方法,不是重写父类的私有方法。class
(3)解释:A继承A爸的密码箱,可是见不到密码箱(大小,颜色,重量等都不知道),A若是要本身作个密码箱,不是仿照A爸的密码箱,而是A特有的密码箱(大小,颜色,重量都和A爸不同)。密码