首页 > 编程 > Java > 正文

Java的覆写操作实例分析

2019-11-26 08:29:46
字体:
来源:转载
供稿:网友

本文实例讲述了Java的覆写操作。分享给大家供大家参考,具体如下:

一 属性覆写

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表