1.繼承的基本概念及實現(xiàn)
- 定義:一個類從已有的類那里獲得其已有的屬性和方法,這種現(xiàn)象叫做類的繼承。
這個新類叫做子類,也叫做派生類;已有的那個類叫做父類,也叫做基類。
- 意義:
代碼得到了極大的重用。
形成一種類的層次體系機構(gòu)。
為多態(tài)創(chuàng)造條件。
- 繼承的實現(xiàn)(extends關(guān)鍵字和implements)
extends:在 Java 中,類的繼承是單一繼承,所以 extends 只能繼承一個類。
implements:使用 implements 關(guān)鍵字可以變相的使java具有多繼承的特性,使用范圍為類繼承接口的情況,可以同時繼承多個接口(接口跟接口之間采用逗號分隔)。
class Human
{
public int age;
public String name;
}
class Student extends Human
{
public double score;
}
public interface A
{
public void eat();
}
public interface B
{
public void sleep();
}
public class C implements A,B
{
}
2.繼承權(quán)限問題
- 同包:父類的私有成員不可以被子類繼承,其他的成員都可以被子類繼承。
注意:父類的所有成員物理上都被繼承過來了,但私有成員在邏輯上不可以被訪問,因此繼承的時候必須慎重,否則會浪費內(nèi)存。(如果隨意的繼承會導(dǎo)致子類非常臃腫,創(chuàng)建子類對象時占用極大的空間)
3.繼承的原則
- 何時選擇繼承?
B是一個A嗎?
如果是則讓B做A的子類。
- 繼承必須是同種類型間繼承,反映的是從一般到特殊的關(guān)系。
- 常見錯誤:汽車輪子成為汽車子類是錯誤的。(原因:汽車輪子不是汽車)
4.Java只支持單繼承,不允許多繼承
- 單繼承:一個子類只能有一個父類
多繼承:一個子類可以有多個父類(只有C++允許多繼承)
- 可以有多重繼承,如類B繼承類A,類C繼承類B,那么類C間接繼承了類A
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。