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程序设计有所帮助。
