【java的繼承extends】

來源:互聯網
上載者:User

標籤:

java中 “繼承”是物件導向軟 件技術當中的一個概念。如果一個類A繼承自另一個類B,就把這個A稱為"B的子類",而把B稱為"A的父類"。繼承可以使得子類具有父類的各種屬性和方 法,而不需要再次編寫相同的代碼。在令子類繼承父類的同時,可以重新定義某些屬性,並重寫某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不同的功能。
繼承的基本概念1.繼承是物件導向的三大特性之一。(封裝,繼承,多態)2.被繼承的類是父類,繼承父類的類是子類3.繼承可以使一個對象直接使用另以對象的屬性和方法4.繼承可實現代碼重用

繼承的限制
1.java只能顯示單繼承,即一個類只能有一個父類2.允許多重繼承3.繼承只能繼承非私人的屬性和方法4.構造方法不能被繼承
來看例子
情況一:
  1. public class Mystring {  
  2.       
  3.     public static void main(String[] args) {  
  4.           
  5.           student ok=new student("xiaoming");  
  6.               ok.say();//say方法也被繼承過來  
  7.     }  
  8.   
  9. }  
  10. class person  
  11. {  
  12.     public String name;   
  13.     //構造方法  
  14.     public person()  
  15.     {  
  16.        System.out.println("我是person構造方法");  
  17.     }  
  18.     public void say()  
  19.     {  
  20.         System.out.println("名字是 :"+name);  
  21.     }  
  22. }  
  23. class student extends person//繼承person類  
  24. {  
  25.     public student(String name)  
  26.     {  
  27.           this.name=name;//person的name屬性被繼承過來  
  28.     }     
  29. }  
複製代碼


輸出結果為:

<ignore_js_op> 

得出結論1:子類執行個體化時,首先會調用父類的構造方法,之後自己在進行執行個體化操作

情況二:

此時引入關鍵字super。super表示父類的引用,可以調用父類的方法和屬性。如調用父類的say方法,可以用。super.say()調用。
得出結論二:父類無預設建構函式時,子類必須顯示的調用父類的構造方法

繼承方法的重寫
   概念:在java中,子類能繼承父類中的方法,但有時子類並不想原封不動的使用父類的方法,而想做一些修改,這就需要採用方法的重寫,又稱方法覆蓋。
方法重寫需要注意的特性1.發生重寫的父類和子類的兩個方法的傳回值,函數名,參數列表必須完全一致2.子類拋出的異常不能超過父類相應方法拋出的異常3.子類方法的存取層級不能低於父類相應方法的存取層級(如父類方法時protected,子類重寫就要用protected或public)
如:
  1. public class Mystring {  
  2.       
  3.     public static void main(String[] args) {  
  4.           
  5.           student ok=new student("xiaoming");  
  6.           ok.say();//say方法也被繼承過來  
  7.     }  
  8.   
  9. }  
  10. class person  
  11. {  
  12.     public String name;   
  13.      
  14.     public void say()  
  15.     {  
  16.         System.out.println("名字是 :"+name);  
  17.     }  
  18. }  
  19. class student extends person//繼承person類  
  20. {  
  21.     public student(String name)  
  22.     {  
  23.         this.name=name;//person的name屬性被繼承過來  
  24.     }     
  25.       
  26.     //say方法重寫  
  27.     public void say()  
  28.     {  
  29.         System.out.println("重寫過得方法       名字是 :"+name);  
  30.       
  31.     }  
  32. }  
複製代碼

【java的繼承extends】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.