本帖最后由 fly51888 于 2011-12-6 18:49 编辑
可以的。
构造方法,顾名思义,就是在你new一个对象的时候就被调用的。当没有定义构造方法时每个类里都有一个默认的无参的构造方法,此时该类就只有一个构造方法;而当你显示定义类的构造方法时,那就没有那个默认的构造方法了,该类所以的构造方法就是定义了的那些构造方法;例如:定义一个Student类:
class Student1{
//不定义构造方法,此时默认的构造方法是Student1();new
//一个对象时只能这样构造,Student1 s=new Studnet1();
}
另外再写一个有定义构造方法的类:
class Student2{
Student(String name);
Student(String name,int age);
}
Student2有两个构造方法,默认的构造方法就没有了
创建Student2对象时只能用两个构造方法
Student2 s2=new Student2("xiaoming");
Student2 s2=new Student2("xiaoqiang",12);
子类继承父类时,构造函数的关系:
例如:
class A{
A(){}
A(int i){}
}
class B extends A{
B(int i){}
}
B这个时候不用显示调用A(int i),但是如果把A()注释掉,就得显示调用A(int i),
子类的带参数构造函数是先找基类的无参构造函数,如果没有无参构造函数的话就得显示调用有参的。
|