Java 繼承和介面

來源:互聯網
上載者:User

標籤:功能   手動   支援   類成員變數   而且   報錯   資料區   能力   代碼區   

  一、繼承

  1、繼承的概念

  繼承是物件導向編程技術的基石,是一種由已有的類建立新類的機制。

  類的繼承性是子類(subclass)可以從父類自動繼承其全部屬性和方法的能力。而且子類中聲明的任何執行個體方法都能調用它們。

  Java不支援多重繼承,一個子類只有一個父類。

  繼承關係也稱為泛化關係,描述父類與子類的關係,UML中用帶空心三角形的直線表示。

 

  2、子類

  建立子類:extends superclass語句指明所要繼承的父類。

  需要清楚的是,Java中Object類是所有類的父類,它的方法可以被所有類調用。

  子類自動從父類繼承的是public、protected修飾的屬性和方法,而無法訪問private修飾的屬性和方法。

  對於default存取權限(無存取修飾詞),若子類父類位於同一包中,子類可以繼承父類預設成員;若不是,不能繼承。

 

  3、子類能做的事

  • 子類可以直接使用繼承來的成員變數,就像使用自己定義的變數;
  • 聲明新的成員變數,若名字和父類的成員變數相同,就會隱藏父類的成員變數;
  • 繼承而來的方法也能直接使用
  • 在子類中實現一個簽名與父類方法一樣的方法,則會覆蓋父類的方法;
  • 子類的構造方法可以使用super調用父類的構造方法;

 

  4、構造方法與子類的記憶體結構

  類的構造方法不能擁有修飾符、傳回型別和異常聲明子句。

  子類的構造方法被調用時,首先調用父類的構造方法,然後執行執行個體變數和靜態變數的初始化塊,最後才執行子類自己的構造方法。

 

  5、關於父類構造方法的調用

  如果子類的構造方法沒有顯示調用父類的構造方法,那麼編譯器會自動為它加上一個預設的super()方法調用。但是,如果父類又沒有預設的無參構造方法,編譯器就會報錯,編譯器會報錯。

  而且,super()語句必須是子類構造方法的第一個子句。

 

  6、執行個體變數初始化器,{...}語句塊

  除了構造方法外,使用這個“執行個體變數初始化器”初始化對象的屬性!

  它會在類的構造方法被調用時運行,運行於父類的構造器之後,當前類的構造方法之前。

 

  7、類變數初始化器 static{...}

  初始化類變數,也就是靜態代碼塊,只能初始化一次!(會最早被執行)

 

  8、子類的記憶體配置  

  Java中記憶體被分為堆(heap)、棧(stack)、全域資料區和代碼區。

       new出來的對象都放在堆裡,它的使用通過引用來調用它。

       引用被壓入棧裡(因為引用很小,適合在棧裡進進出出)。

  實際上,從記憶體的角度看,子類會擁有父類的所有屬性(即包括private),但是子類的對象並不能直接存取父類中的私人變數,這也是類封裝的關鍵。

 

  二、Java中的修飾符

  按被修飾的對象:類修飾符、屬性修飾符、方法修飾符

  按功能:

  1、存取權限修飾符

    public、private、protected、default(之前已經介紹)

  2、final修飾符

    final意味著不可變。   

    修飾類:類不能被擴充,即不能被繼承。

    修飾屬性:屬性值不能改變,意味著聲明時要手動初始化。

    修飾方法:方法不能被重寫,即為最終版本,子類不能修改。

  3、abstract修飾符   

    修飾類:該類為抽象類別,不能被執行個體化,必須擴充後才能產生對象。

    修飾方法:抽象方法,必須被子類重寫(override)。

  4、static修飾符

    表名屬性和方法都隸屬於類~可以通過類名訪問。

  5、super修飾符

    super是指向父類的引用,相當於父類的名字,它使被屏蔽的父類成員變數或者成員方法變為可見。

    如果子類中,隱藏、覆蓋了父類的屬性和方法,可以通過super進行調用。

    super的使用:

    • 訪問父類的隱藏屬性:super.variable
    • 調用父類被重寫的方法:super.method([paralist])
    • 調用父類的構造方法:super([paralist])

 

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.