Java中父类的私有方法不被子类重写

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爸不同)。密码