Java基礎學習-- 繼承 的簡單總結(jié)
代碼參考:Java基礎學習小記--多態(tài)
?
為什么要引入繼承?
還是做一個媒體庫,里面可以放CD,可以放DVD。如果把CD和DVD做成兩個沒有聯(lián)系的類的話,那么在管理這個媒體庫的時候,要單獨做一個添加CD的函數(shù),單獨做一個添加DVD的函數(shù),如果還要往這個媒體庫里添加其他的媒體類,還要再創(chuàng)建另一個添加函數(shù)。我們說這樣的代碼不具備可擴展性。另外,CD和DVD有很多相似之處,它們的成員變量里都有標題,播放時長,評論,等等,我們稱這樣的程序存在大量的代碼復制,代碼復制是代碼不良的表現(xiàn)。所以我們可以創(chuàng)建一個它們的父類,把他們相同的成員變量都添加進父類,而它們都可以繼承得到這些變量,在添加到媒體庫的時候僅僅需要創(chuàng)建一個添加它們父類的這么一個函數(shù),它們便也可添加進去。
子類從父類那里繼承得到了什么?
繼承得到了父類所有的東西,包括成員變量和成員函數(shù)。但不見得能夠訪問父類的所有東西,這樣看父類所繼承下來的成員變量和成員函數(shù)的訪問屬性。如果父類里有成員變量是private的,那么子類是不可以直接訪問的。但是,private只有父類自己可以訪問,所以我們可以在子類里通過調(diào)用父類的public函數(shù)來間接的訪問這些成員變量。
另外,子類除了有從父類那里繼承得到的之外,還可以有自己的獨有的成員變量和函數(shù),寫在自己的類里面。
訪問屬性
訪問屬性 ? ?含義 ? ?
public ? ?對所有人開放 ? ?
private ? ?只有自己可以訪問 ? ?
protected ? ?只有自己、子類和包內(nèi)其他類可以訪問 ? ?
缺省 ? ?只有自己和包內(nèi)其他類可以訪問 ? ?
?
super();
在父類的構(gòu)造函數(shù)中構(gòu)造過的成員變量,子類的構(gòu)造函數(shù)的參數(shù)表里要寫明,并且用super()將這些在父類那里構(gòu)造過的成員變量從父類那里取過來。實例代碼請看多態(tài)那篇博文。
super();里面的參數(shù)會決定調(diào)用父類里的哪個構(gòu)造器,super();里面的參數(shù)和所調(diào)用的構(gòu)造器的參數(shù)是相同的。
缺省模式下(如果子類構(gòu)造器里沒有super();),會默認調(diào)用父類里沒有參數(shù)的構(gòu)造器,如果父類里沒有這樣的構(gòu)造器,eclipse會報錯。
覆蓋(override)
當子類和父類里有相同名稱的函數(shù)時,子類里的函數(shù)會去覆蓋(override)從父類那里繼承來的那個同名函數(shù),于是從父類來的那個函數(shù)就會隱藏起來不起作用。但是如果想在子類中調(diào)用父類中的那個同名函數(shù),應寫成?super.函數(shù)名();??。
<br/>

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)