构造方法这里我研究了好长时间,比较凌乱,总结了下。
1.构造方法的作用是:在创建类的对象的时候,对对象进行初始化,也就是说,只要一创建对象,那么就让该对象的成员有一定的值。
2.构造方法的声明是很特殊的:没有返回值,方法名跟类名一致,所以——子类不能继承父类的构造方法,因为父类构造方法名与子类类名是不一样的。
3.子类可以使用super在构造方法中调用父类的构造方法。这么做的意义是,子类在创建对象的时候,要先查看下父类的构造方法对对象做过一些什么操作,如果子类不调用父类构造方法,那么子类在创建对象的时候有可能会漏掉父类构造方法对对象的初始化操作。
举个例子:----------
public class A {
//无参构造方法
public A(){
System.out.println("aaaaaaaa");
}
//有参构造方法
public A(int i){
System.out.println(i);
}
}
public class B extends A {
//B的构造方法
public B(){
super(1);//调用父类有参的构造方法
System.out.println("bbbbbbb");
}
public B(int i){
System.out.println("cccccccccc"+i);
}
public static void main(String[] args) {
new B();
new B(5);//调用的是无参构造方法,注意的是,该构造中没有用super来调用父类构造,但系统会默认调用父类的无参构造方法
}
}
好了,感觉上就这些,我把new B() 和new B(5)来回调用,对比出的结果 |