欢迎来到天天文库
浏览记录
ID:15532375
大小:29.00 KB
页数:3页
时间:2018-08-03
《java继承时构造函数的调用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、·Java继承时构造函数的调用classPerson{privateStringname="";privateintage=0;publicPerson(){ System.out.println("person无参数构造函数");}publicPerson(Stringname,intage){ this.name=name; this.age=age; System.out.println("person2参数的构造函数"); }}classStudentextendsPerson{privateStringschool;priva
2、teStringgrade;publicStudent(){ System.out.println("student无参数的构造函数");}publicStudent(Stringname,intage,Stringschool){ System.out.println("student3参数的构造函数");} public Student(Stringname,intage,Stringschool,Stringgrade){ super(name,age); this.school=school; this.grade=gra
3、de; System.out.println("student4参数的构造函数,super().");}}classTest{publicstaticvoidmain(String[]args){ System.out.println("st1:"); Studentst2=newStudent(); System.out.println("---------------------------"); System.out.println("st2:"); Studentst=newStudent("zhangshan
4、",76,"武大"); System.out.println("---------------------------"); System.out.println("st3:"); Studentst3=newStudent("lisi",24,"武大","研究生");}} /*=======================================输出如下:E:JavaWork>javaTestst1:person无参数构造函数student无参数的构造函数---------------------------st2:pers
5、on无参数构造函数student3参数的构造函数---------------------------st3:person2参数的构造函数student4参数的构造函数,super().************************************** 说明了创建一个子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数),假如父类有带参数的构造函数,那么系统将不会给它创建无参数的构造函数,这时,子类在实例化的时候,因为找不到父类的默认构造函数,编译器将会报错,但如果在子类的构造函数中指定用父类的带参数的构造函数的时候,
6、或者在父类中加一个无参数的构造函数,就不会报错。=============================================我们假设A是B的父类,B是A的子类。1、如果程序员没有给类A没有提供构造函数,则编译器会自动提供一个默认的无参数的构造函数,如果用户提供了自己的构造函数,则编译器就不在提供默认的无参数构造函数。2、子类B实例化时会自动调用父类A的默认构造函数,所以如果A的默认的无参数的构造函数为private,则编译器会报错,而如果A没有提供默认的无参数的构造函数,而提供了其他类型的构造函数,编译器同样会报错,因为B找不到A的
7、默认无参数构造函数。所以,我们最好给父类A提供一个无参数的构造函数。 3、或者在B的构造函数中显示的调用父类A的有参构造函数。super(parameter)
此文档下载收益归作者所有