您好,登錄后才能下訂單哦!
本文實例講述了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 說明
在完成方法覆寫時,需要注意以下幾點:
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。