子类继承了父类的公有方法后又调用了父类的私用方法?
bt9 2005-07-24 04:34:09 大家先看看下面这个例子。我想明白它的工作原理是什么?
它的输出是A.a与A.b。可是我不太明白为什么是这个样子啊,B继承了A后,A的ab()方法不是传给它了吗,这个时候方法ab()不是直接在B中可以调用了吗?
或者按我对继承的原理的理解应该是,主方法调用了B的默认构造函数,B是A的子类,所以先调用A的默认构造函数。但是这之后发生了什么啊,不还是调用了B中从A继承来ab()方法了,为什么结果会是那样??
帮忙给我讲讲它的原理。。。。谢谢。。。
class A{
private void a(){
System.out.println("A.a");
}
private void b(){
System.out.println("A.b");
}
public void ab(){
a();
b();
}
}
public class B extends A{
private void a(){
System.out.println("B.a");
}
protected void b(){
System.out.println("B.b");
}
public static void main(String[] args){
new B().ab();
}
}