2.Java繼承的概念與實現

來源:互聯網
上載者:User

標籤:

繼承是類與類之間的關係,是一個很簡單很直觀的概念,與現實世界中的繼承(例如兒子繼承父親財產)類似。

繼承可以理解為一個類從另一個類擷取方法和屬性的過程。如果類B繼承於類A,那麼B就擁有A的方法和屬性。

繼承使用 extends 關鍵字。

例如我們已經定義了一個類 People:

  1. class People{
  2. String name;
  3. int age;
  4. int height;
  5. void say(){
  6. System.out.println("我的名字是 " + name + ",年齡是 " + age + ",身高是 " + height);
  7. }
  8. }

如果現在需要定義一個類 Teacher,它也有 name、age、height 屬性和 say() 方法,另外還需要增加 school、seniority、subject 屬性和 lecturing() 方法,怎麼辦呢?我們要重新定義一個類嗎?

完全沒必要,可以先繼承 People 類的成員,再增加自己的成員即可,例如:

  1. class Teacher extends People{
  2. String school; // 所在學校
  3. String subject; // 學科
  4. int seniority; // 教齡
  5. // 覆蓋 People 類中的 say() 方法
  6. void say(){
  7. System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教齡");
  8. }
  9. void lecturing(){
  10. System.out.println("我已經" + age + "歲了,依然站在講台上講課");
  11. }
  12. }

對程式的說明

  • name 和 age 變數雖然沒有在 Teacher 中定義,但是已在 People 中定義,可以直接拿來用。
  • Teacher 是 People 的子類,People 是Teacher 類的父類。
  • 子類可以覆蓋父類的方法。
  • 子類可以繼承父類除private以為的所有的成員。
  • 構造方法不能被繼承。


繼承是在維護和可靠性方面的一個偉大進步。如果在 People 類中進行修改,那麼 Teacher 類就會自動修改,而不需要程式員做任何工作,除了對它進行編譯。

單繼承性:Java 允許一個類僅能繼承一個其它類,即一個類只能有一個父類,這個限制被稱做單繼承性。後面將會學到介面(interface)的概念,介面允許多繼承。

最後對上面的代碼進行整理:

  1. public class Demo {
  2. public static void main(String[] args) {
  3. Teacher t = new Teacher();
  4. t.name = "小布";
  5. t.age = 70;
  6. t.school = "清華大學";
  7. t.subject = "Java";
  8. t.seniority = 12;
  9. t.say();
  10. t.lecturing();
  11. }
  12. }
  13. class People{
  14. String name;
  15. int age;
  16. int height;
  17. void say(){
  18. System.out.println("我的名字是 " + name + ",年齡是 " + age + ",身高是 " + height);
  19. }
  20. }
  21. class Teacher extends People{
  22. String school; // 所在學校
  23. String subject; // 學科
  24. int seniority; // 教齡
  25. // 覆蓋 People 類中的 say() 方法
  26. void say(){
  27. System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教齡");
  28. }
  29. void lecturing(){
  30. System.out.println("我已經" + age + "歲了,依然站在講台上講課");
  31. }
  32. }

運行結果:
我叫小布,在清華大學教Java,有12年教齡
我已經70歲了,依然站在講台上講課

注意:構造方法不能被繼承,掌握這一點很重要。 一個類能得到構造方法,只有兩個辦法:編寫構造方法,或者根本沒有構造方法,類有一個預設的構造方法。

2.Java繼承的概念與實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.