一 构造器:
就是和类名相同但无返回类型的方法。用于当前或某一对象的实例化,并将当前或某一对象返回。要得到一个类的实例时,往往是要运行其构造函数的。
例如:
1,其中A方法 就是class A的构造器 虽然构造器没有返回值
class A {
public A(){
}
}
2,构造器,可以有参数
class A{
public A(String a,String b){
}
}
3,一个类也可以有多个构造器如
class A{
public A(){
}
public A(String a,String b){
}
}
当你new A()时则无参那个构造器被调用,当你new A(“ddd”,“fff”)时,那个有参的构造器被调用,如果你没有写构造器则jvm会调用一个默认的无参的构造器
构造器在类初始化的时候被调用通常被用来做一些初始化的工作
二,关于构造函数继承问题:
//创建父A类
class A {
//A带参的构造方法
A(String name) {
System.out.println("父类输出-->" + name);
}
}
//子B类继承A类
public class B extends A {
//B带参的构造方法
B(String name) {
super(name); //调用父类构造函数
System.out.println("子类输出-->" + name);
}
public static void main(String[] args) {
B b = new B("good");
}
}
输出结果:
父类输出–>good
子类输出–>good
1,子类实例化对象时,会先调用父类的构造器
2,如果子类的构造器没有显示的调用父类的构造器 ,默认调用super();
3,子类要使用父类有参的构造器,使用super(参数)形式,且super必须是子类构造方法中的第一条语句。
4,如果父类没有不带参数的构造器,且子类的构造器中又没显示的调用父类其他构造器,则Java编译器将报告错误。