新闻资讯
看你所看,想你所想

默认构造方法

默认构造方法是Java语言的一种语法,是指没有参数的构造方法,可以分为2种:隐含的、程序中显式定义的。

  • 中文名 默认构造方法
  • 词语定义 Java语言的一种语法
  • 类别 没有参数的构造方法
  • 作用 隐含的、程序中显式定义

介绍  

  1、默认构造方法

  在java语言中,每个类至少有一个构造方法。如果程序中没有显式定义任何构造方法,

  那么java语言将自动提供一个隐含的默认构造方法。只要程序中已经显式定义了构造方法。

  那么java语来自言将不再提供隐含的默认构造方法

  //实例1

  cl360百科ass Base

  {

  Base(int i) { System.out.println("五律诉居责北院玉应合先Base("+i+")"); }

  }

  cl站某项认功ass Sub extends Base

  {

  Sub() { System.out.强石法位春迫举额视洲println("Sub()"); }

  Sub(int i)

  {

  System.out.println("Sub("+i+")");

  }

  public sta的粮推汉知下tic void main(String[] args)

源少病居怀村农述殖千措  {

  }

  }

  /*output:

  z.执结秋难足香java:9: 找不到符号

  符号: 构造函数 Base()

  位置: 类 Base

  Sub() { System.out.println("Sub()"); }

  ^

  z.java:11: 找不到符号

  符号: 构造函华掉白齐坚宗促训药还破数 Base()

  位置: 类 Base

  {

  ^

  2 错误

  */

  通过分析以上编译错误,原因是Base父类缺少默认构造方法,正因为Base父类定义了带参数的构造方法,以至于java语言将不再提供隐混斗精紧式的默认构造方法,所以代码无法通过编译。

  //实例2

  class Base

  {

  Base(int 备汉i) { System.out.println("Base("+i+")"); }

  }

  class Sub extends Base

  {

  Sub()

  {

  super(8);

  System.out.println("Sub()");

  }

  Sub(int i)

  {

  super(9);

  System.out.println("Sub("+i+")");

  }

  public sta条煤至不宁要仍握tic void main(String[] args)

  {

  }

  }

  情解知握完利况变得扑朔迷离起来,虽然Base父类没有显式提供无参数的默认构造方法,

  而java语言也不会提供隐式的默认构造方法,但以上代码竟然正常编译通过了。

  2、构造方法的显式与隐式调用

 史浓范 如果子类的构造方法中没有显式地调用父类构造方法,也没有使用this关键药洋买妈转设各字调用其他重载构前际安大转月造方法,

  那么在生成子类的实例对象时,系统将默认调用父类无参数的构造方法。

  看看真实的实例1代码:

  class Base

  {

  Base(int i) { System.out.println("Base("+i+")"); }

  }

  class Sub extends Base

  了剧西便及{

  Sub()

  {

  super();

  System.out.println("Sub()");

  }

  Sub(int i)

  {

  sup助染er();

  System.out.println("Sub("+i+")");

  }

  public static void main(String[] args)

  {

  }

  }

  原来隐式调用的super();被省略了,这下也就知道了实例2为什么得以正确编译。

转载请注明出处安可林文章网 » 默认构造方法

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com