Java的覆写操作实例分析
本文实例讲述了Java的覆写操作。分享给大家供大家参考,具体如下:
一属性覆写
1点睛
所谓属性覆写,指的是子类定义和父类定义之中名称相同的属性。
2代码
classBook
{
Stringinfo="HelloWorld.";//如果加上private,1处的代码就会编译不过
}
classComputerBookextendsBook
{
intinfo=100;//属性名称相同
publicvoidprint()
{
System.out.println(info);
System.out.println(super.info);//1处代码
}
}
publicclassOverrideData
{
publicstaticvoidmain(Stringargs[])
{
ComputerBookcb=newComputerBook();//实例化子类对象
cb.print();
}
}
3运行
100
HelloWorld.
4说明
该代码没有太大的意义,它并没有实现真实的覆写。为了满足类的封装型,类中的属性一般都需要private封装,一旦封装之后,子类根本就“看不见”父类的属性成员,子类定义的同名属性成员,其实就是一个“全新的”数据成员,所谓的覆写操作就没意义了。
二super调用父类方法
1点睛
子类中可以通过super.方法()调用父类中被覆写的方法。
2代码
classPerson
{
Stringname;
intage;
publicStringtalk()
{
return"Iam"+this.name+",Iam"+this.age+"yearsold";
}
}
classStudentextendsPerson
{
Stringschool;
publicStudent(Stringname,intage,Stringschool)
{
//分别为属性赋值
this.name=name;//super.name=name;
this.age=age;//super.age=age;
this.school=school;
}
//此处覆写Person中的talk()方法
publicStringtalk()
{
returnsuper.talk()+",Iamfrom"+this.school;
}
}
publicclassOverride2
{
publicstaticvoidmain(String[]args)
{
Students=newStudent("Jack",25,"HAUT");
//此时调用的是子类中的talk()方法
System.out.println(s.talk());
}
}
3运行
IamJack,Iam25yearsold,IamfromHAUT
4说明
在完成方法覆写时,需要注意以下几点:
- 覆写方法的返回类型必须和被覆写的方法的返回类型一致。
- 被覆写的方法不能为static。
- 被覆写的方法不能拥有比父类更严格的访问控制权限。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。