Java super关键字用法实战案例分析
本文实例讲述了Javasuper关键字用法。分享给大家供大家参考,具体如下:
一点睛
如果子类继承了父类的数据成员,这时就需要调用父类的有参构造方法,来初始化来自父类的数据成员,这时就需要显示的调用父类中的有参构造方法super(参数1,参数2)。
二实战——super调用父类中的构造方法
1代码
classPerson { Stringname; intage; publicPerson(Stringname,intage)//父类的构造方法 { this.name=name; this.age=age; } } classStudentextendsPerson { Stringschool; //子类的构造方法 publicStudent(Stringname,intage,Stringschool) { super(name,age);//用super调用父类中的构造方法 this.school=school; } } publicclassSuperDemo { publicstaticvoidmain(String[]args) { Students=newStudent("Jack",30,"HAUT"); System.out.println("Name:"+s.name+",Age:"+s.age+",School:"+s.school); } }
2运行
Name:Jack,Age:30,School:HAUT
3说明
在子类的构造方法中明确地使用super(name,age),指明调用的是父类的有两个参数的构造方法。
调用super()必须写在构造方法的第1行,否则编译不过。
每个子类构造方法的第一句话,都隐含地调用了super(),如果父类中没有提供这种形式的构造方法,那么在编译的时候就会报错。
三实战——通过super调用父类的属性和方法
1代码
classPerson { Stringname; intage; //父类的构造方法 publicPerson() { } publicStringtalk() { return"Iam:"+this.name+",Iam:"+this.age+"yearsold"; } } classStudentextendsPerson { Stringschool; //子类的构造方法 publicStudent(Stringname,intage,Stringschool) { //在这里用super调用父类中的属性,其实换成this也是可以的 super.name=name; super.age=age; //调用父类中的talk()方法 System.out.print(super.talk()); //调用本类中的school属性 this.school=school; } } publicclassSuperDemo2 { publicstaticvoidmain(String[]args) { Students=newStudent("Jack",30,"HUAT"); System.out.println(",Iamfrom:"+s.school); } }
2运行
Iam:Jack,Iam:30yearsold,Iamfrom:HUAT
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。