2

关于构造函数,需要掌握的:

基本概念

  • 构造函数是一个(或多个)特别的方法,在对象创建时自动调用。

  • 构造函数的名字必须和类名一样。

  • 构造函数没有返回值,因为它只会在对象创建时用到。

构造函数重载

  • 构造函数有多个时,它们的签名(即方法的参数类型、数量、位置)必须不同。

  • 构造函数有多个时,只会执行其中的一个。

  • 构造函数有多个时,一个构造函数中可以通过 this(...); 语句来调用另一个构造函数,该语句必须是函数的第一行。

缺省构造函数

  • 不带参数的构造函数称作“缺省构造函数”。

  • 没有其他构造函数时,缺省构造函数不需要写出来。

  • 有多个构造函数时,如果需要缺省构造函数,就必须要写出来,否则该类就是“没有缺省构造函数”的。

构造函数与继承

  • 父类的构造函数会比子类的构造函数先调用。

  • 当父类有多个构造函数时,子类的构造函数中可以通过 super(...); 语句来选择使用哪个父类的构造函数。同样的,该语句必须是函数的第一行。

  • 如果子类没有选择使用父类的哪个构造函数,那么系统会调用父类的缺省构造函数。

  • 如果父类没有缺省构造函数,那么子类的构造函数中必须通过 super(...); 来选择使用哪个父类的构造函数。

构造函数可见性

  • 构造函数可以被 public/protected/private 修饰,其含义与一般方法一样。

  • private 构造函数不能被子类和其他类调用。

  • 只有在构造函数的可见范围内才能使用 new 关键字来调用它。例如某构造函数为 private,则该构造函数只能在该类内部使用。


捏造的信仰
2.8k 声望272 粉丝

Java 开发人员