电话:0731-83595998
导航

Java继承时构造函数的调用

来源: 2017-12-22 09:58

 百度广告

class Person
private String name="";

public Person()
   System.out.println("person无参数构造函数");

public Person(String name,int age)
   this.name=name;
   System.out.println("person 2 参数的构造函数");  
}

class Student extends Person

private String school;

public Student()
   System.out.println("student 无参数的构造函数");

public Student(String name ,int age,String school)
   System.out.println("student 3 参数的构造函数");
   public   Student(String name ,int age,String school,String grade)
   super(name,age);
   this.grade=grade;
}

class Test
public static void main(String args)
   System.out.println("st1:");
   System.out.println("---------------------------");
   System.out.println("st2:");
   System.out.println("---------------------------");
   System.out.println("st3:");

}

/*
输出

E:"JavaWork>java Test
person无参数构造函数
---------------------------
person无参数构造函数
---------------------------
person 2 参数的构造函数

**************************************

   说明了创建一个子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数),假如父类有带参数的构造函数,那么系统将不会给它创建无参数的构造函数,这时,子类在实例化的时候,因为找不到父类的默认构造函数,编译器将会报错,但如果在子类的构造函数中指定用父类的带参数的构造函数的时候,或者在父类中加一个无参数的构造函数,就不会报错。

=============================================

我们假设A是B的父类,B是A的子类。

2、子类B实例化时会自动调用父类A的默认构造函数,所以如果A的默认的无参数的构造函数为private,则编译器会报错,而如果A没有提供默认的无参数的构造函数,而提供了其他类型的构造函数,编译器同样会报错,因为B找不到A的默认无参数构造函数。所以,我们最好给父类A提供一个无参数的构造函数。

3、或者在B的构造函数中显示的调用父类A的有参构造函数。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端