1、构造函数必须与类名相同,并且不能有返回值;返回值也不能为void(若在构造函数前面加上void,编译器会把它认为是方法,而不是构造函数;当然在new的时候,也不能自动调用)。
2、每个类可以有多个构造函数,如果人为定义了构造函数,编译器不会创建默认的构造函数。
3、构造函数在对象实例化的时候被自动调用,且只能运行一次;普通方法可以被对象调用多次。
4、构造函数的主要作用是完成对象初始化工作。
5、构造函数不能被继承。解释:子类继承父类的时候,先“调用”父类的构造函数,“调用”和“继承”不同。
6、构造函数可以被重载(使用不同的参数个数或参数类型来定义多个构造函数)。
7、当父类没有提供无参数的构造函数时(并不仅限于父类默认构造函数),子类的构造函数中必须通过super()显式调用父类的构造函数。
如果,父类提供了无参构造函数,子类的构造函数就可以不显式地调用父类的构造函数。(这时编译器会默认调用父类提供的无参数的构造函数)
当有父类时,首先执行父类的构造函数,再执行子类的构造函数。
父类:
class Base {
(String string){
System.out.println(string);
}
}
子类:
public class Medium extends Base {
Medium(){
super("你好");
}
public static void main(String[] args){
Medium medium=new Medium();
}
}
8、一个类的修饰符是public,那它的构造函数也是public。
9、普通方法也可以与构造函数方法名相同。