首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问一个关于父类构造方法的有关问题。

2012-03-31 
请教一个关于父类构造方法的问题。。。是这样的:public class shiyan {public shiyan(){jiao()} void jiao

请教一个关于父类构造方法的问题。。。
是这样的:

public class shiyan {



public shiyan(){
jiao("");
}

void jiao(String a){
System.out.println("叫!");
}



}
public class shiyan2 extends shiyan {


public void jiao(String a) {
System.out.println("疯狂的叫!");
}

public static void main(String [] args){

shiyan2 shi=new shiyan2();
shi.jiao("");
}




}

这样显示输出的是:
疯狂的叫!
疯狂的叫!

而把父类中的jiao方法改成private,就显示:
叫!
疯狂的叫!

请问高手这是为什么呢?

[解决办法]
首先,在子类构造时,会默认调用父类的无参构造函数。第一种情况是子类重写了父类的jiao方法,在父类构造时运行时绑定调用的是重写后的jiao方法;当你把父类的方法设为私有的时候,该方法只对本类可见,子类就不能重写父类的方法了,所以调用的是父类中的jiao方法。

热点排行