Java-父类的私有方法是不会被子类重写的
2015-03-21 22:32:33| 分类:
默认分类
| 标签:
|举报
|字号大中小 订阅
首先Ricki创建如下两个类,彼此为继承和被继承的关系:
public class Parent {
public void display() {
System.out.println("It's Parent Class");
}
}
public class Child extends Parent {
public void display() {
System.out.println("It's Child Class");
}
}
接着新建一个带main方法的执行类,其中main方法的代码如下:
Parent parent = new Child();
parent.display();
运行显示结果为:It's Child Class
上面代码中new Child();实例一个Child的实例,并把实例的引用赋给了类型为父类的一个变量parent,虽然parent的类型为Parent,但调用display方法的时候,调用的是子类的display,也即如果父类的某个方法被子类所重写,那么调用该方法时,执行的是子类中的方法,而不是父类,这也是java支持多态性的一种表现。
现把Parent修改为如下:
public class Parent {
private void display() {
System.out.println("It's Parent Class");
}
public void init() {
display();
}
}
由于Parent的display访问修饰符为private,所以main方法中的parent.display();该为parent.init();,重新run,得出的结果为:It's Parent Class。如果吧Parent的display的访问修饰符改为public或protected的话,结果将为It's Child Class。父类的私有方法是不会被子类所重写的,所以通过init方法间接调用display的时候,程序找的是Parent的display,而不是Child。
评论这张
转发至微博
转发至微博
评论