java中繼承關係學習小結

來源:互聯網
上載者:User

標籤:java   繼承   類   

繼承:把多個類中相同的內容提取出來,定義到一個類中,其他類只需要繼承該類,就可以使用該類公開的屬性和公開的方法。

 

繼承的好處:提高代碼的複用性。提高代碼的可維護性。讓類與類之間產生關係,是多態存在的一個前提。

 

繼承的弊端:提高了類與類之間的耦合性。

 

開發的原則:低耦合,高內聚

耦合:類與類之間的關係

內聚:自己單獨完成某件事情的能力。

 

在Java中只允許單繼承。一個類如果沒有顯示的繼承其他類,則該類的預設父類為Object類。Object類是所有類的父類。

 

Java支援多層繼承。

 

父類的公開方法可以訪問父類的私人方法和私人成員。

 

子類只能繼承父類所有非私人的成員(成員方法和成員變數)。

 

子類不能繼承父類的構造方法,但是可以通過super()關鍵字去訪問父類的構造方法。

 

不要為了部分功能而去繼承。

 

什麼時候考慮採用繼承?

繼承體現的是is-a的關係。

採用假設法:有兩個類A和B,如果A是B的一種具體體現,或者B是A的一種具體體現時,就可以採用繼承。

 

繼承中,成員變數的關係:子父類中各定義了一個同名成員變數時,子類中的成員變數會覆蓋父類中的成員變數。在子類中可以通過super來調用父類中的同名變數。

 

在子類方法中訪問一個變數的尋找順序:

 a:在子類的對應的局部範圍內尋找,有就是用

 b:在子類的成員範圍內尋找,有就是用。

 c:在父類的成員範圍內尋找,有就是用。

  如果都沒有找到,則報錯。

 

在一個類中,方法與方法之間是平級關係,方法之間不能訪問對方的局部變數。

 

super和this的區別:

         this代表本類對象的引用

         super代表父類儲存空間的標示,相當於父類的引用。

this和super都可以訪問構造方法、成員變數和成員方法。

 

繼承間構造方法之間的關係。

子類所有的構造方法預設都會去訪問父類的無參構造方法。

         因為子類會繼承父類中的資料,可能會用到父類中的資料,所以在子類初始化之前,一定要完成父類的初始化。

每一個構造方法的第一條語句預設都是:super

如何父類中沒有構造方法,該怎麼辦呢?

子類通過super去顯示調用父類其他的帶參的構造方法

子類通過this去調用本類的其他構造方法,本類其他構造也必須首先訪問了父類構造

一定要注意:

super(…)或者this(….)必須出現在第一條語句上,否則,就會有父類資料的多次初始化

 

繼承間成員方法的關係

子父類中各定義了一個同名成員方法時,子類中的成員方法會覆蓋父類中的成員方法。在子類中可以通過super來調用父類中的同名方法。

通過子類對象去訪問一個方法的尋找順序:

         a:在子類中尋找,如果找到就調用

         b:在父類中尋找,如果找到就調用

如果都沒有找到,就報錯。不會尋找父類的父類……

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

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.