public class Animal {
private void show() {
System.out.println("父类的私有方法");
}
public void bark() {
System.out.println("动物叫");
}
public static void main(String[] args) {
Animal animal = new Cat();
animal.show();
}
}
class Cat extends Animal {
public void bark() {
System.out.println("猫叫");
}
}
animal.show(); 这里引用的是父类的私有方法,而子类不能继承父类的私有方法,所以程序的输出结果应该是“父类的私有方法”。不过可以通过反射机制来访问父类的私有方法。应该是这样的,我也没测试,LZ可以测试一下。有问题再解决。
私有的不行,你在非本类中调用会报错的
Animal animal = new Cat();
就以这个为例子。
你这里虽然声明的事Animal,但是它的实例对象使用Cat去实现的,所以当你调用animal.show();时,肯定是调用子类的实现方法。不过你这里父类采用的是私有的方法,那么你子类将无法继承,所以你这段代码执行时会报错
你父类采用的是私有的方法,只有父类自己可以调用,子类不行