Flask接口签名sign原理与实例代码浅析
216
2022-12-25
Java的覆写操作实例分析
本文实例讲述了java的http://覆写操作。分享给大家供大家参考,具体如下:
一 属性覆写
1 点睛
所谓属性覆写,指的是子类定义和父类定义之中名称相同的属性。
2 代码
class Book
{
String info = "Hello World." ; // 如果加上private,1处的代码就会编译不过
}
class ComputerBook extends Book
{
int info = 100 ; // 属性名称相同
public void print()
{
System.out.println(info) ;
System.out.println(super.info) ; // 1处代码
}
}
public class OverrideData
{
public static void main(String args[])
{
ComputerBook cb = new ComputerBook() ; // 实例化子类对象
cb.print() ;
}
}
3 运行
100
Hello World.
4 说明
该代码没有太大的意义,它并没有实现真实的覆写。为了满足类的封装型,类中的属性一般都需要private封装,一旦封装之后,子类根本就“看不见”父类的属性成员,子类定义的同名属性成员,其实就是一个“全新的”数据成员,所谓的覆写操作就没意义了。
二 super调用父类方法
1 点睛
子类中可以通过super.方法()调用父类中被覆写的方法。
2 代码
class Person
{
String name;
int age;
public String talk( )
{
return "I am " + this.name + ", I am " + this.age + " years old";
}
}
class Student extends Person
{
String school;
public Student( String name, int age, String school )
{
// 分别为属性赋值
this.name = name; //super.name = name;
this.age = age; //super.age = age;
this.school = school;
}
// 此处覆写Person中的talk()方法
public String talk( )
{
return super.talk()+ ", I am from " + this.school ;
}
}
public class Override2
{
public static void main( String[] args )
{
Student s = new Student( "Jack ", 25, "HAUT" );
// 此时调用的是子类中的talk()方法
System.out.println( s.talk() );
}
}
3 运行
I am Jack , I am 25 years old, I am from HAUT
4 说明
在完成方法覆写时,需要注意以下几点:
覆写方法的返回类型必须和被覆写的方法的返回类型一致。
被覆写的方法不能为static。
被覆写的方法不能拥有比父类更严格的访问控制权限。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~