溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java的覆寫操作實例分析

發(fā)布時間:2020-09-12 10:59:14 來源:腳本之家 閱讀:149 作者:cakincqm 欄目:編程語言

本文實例講述了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 說明

該代碼沒有太大的意義,它并沒有實現(xiàn)真實的覆寫。為了滿足類的封裝型,類中的屬性一般都需要private封裝,一旦封裝之后,子類根本就“看不見”父類的屬性成員,子類定義的同名屬性成員,其實就是一個“全新的”數(shù)據(jù)成員,所謂的覆寫操作就沒意義了。

二 super調(diào)用父類方法

1 點睛

子類中可以通過super.方法()調(diào)用父類中被覆寫的方法。

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" );
    // 此時調(diào)用的是子類中的talk()方法
    System.out.println( s.talk() );
  }
}

3 運行

I am Jack , I am 25 years old, I am from HAUT

4 說明

在完成方法覆寫時,需要注意以下幾點:

  • 覆寫方法的返回類型必須和被覆寫的方法的返回類型一致。
  • 被覆寫的方法不能為static。
  • 被覆寫的方法不能擁有比父類更嚴(yán)格的訪問控制權(quán)限。

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設(shè)計有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI