我的Blog,我做主。

君子之行,静以修身,俭以养德……

导航

构造函数里的super()是干什么用的

Posted on 2007-10-30 10:34  俺喜欢打篮球  阅读(854)  评论(0)    收藏  举报

super()指的是父类的构造函数,即本身这个类直接继承的那个类,

代码中的

super();

一般出现在构造函数中,而且是必须出现在第一行。这里是显式调用父类的构造函数,其实,即使不写这一行,一般都会自动调用父类的构造函数。

超类泛指父类以上的类,包括父类。

如:Man类继承自Person类,Person类继承自Animal类,Animal类继承自Object类,则Person,Animal,Object类统称为Man类的超类。

而super和this一样,相当于一个对象,这个对象就是本对象中包含的那个父类的对象。

如Person类有个函数。

public void fun(){System.out.println("I'm person");}

Man类继承自Person类,且重写(覆盖)了该函数:

public void fun(){System.out.println("I'm not woman");}

则man.fun();输出的是I'm not woman,即调用覆盖后的函数

而如果在函数前加上super.的话,即

super.fun();则输出的是I'm person,即以本对象中包含的那个父类对象的名义调用原始的fun()方法。

即他执行的效果和父类原来函数的效果一样。