1.繼承的基本概念及實現(xiàn)
- 定義:一個類從已有的類那里獲得其已有的屬性和方法加勤,這種現(xiàn)象叫做類的繼承仙辟。
這個新類叫做子類,也叫做派生類鳄梅;已有的那個類叫做父類叠国,也叫做基類。
- 意義:
代碼得到了極大的重用戴尸。
形成一種類的層次體系機構粟焊。
為多態(tài)創(chuàng)造條件。
- 繼承的實現(xiàn)(extends關鍵字和implements)
extends:在 Java 中孙蒙,類的繼承是單一繼承项棠,所以 extends 只能繼承一個類。
implements:使用 implements 關鍵字可以變相的使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.繼承權限問題
- 同包:父類的私有成員不可以被子類繼承坦胶,其他的成員都可以被子類繼承透典。
注意:父類的所有成員物理上都被繼承過來了,但私有成員在邏輯上不可以被訪問顿苇,因此繼承的時候必須慎重峭咒,否則會浪費內存。(如果隨意的繼承會導致子類非常臃腫纪岁,創(chuàng)建子類對象時占用極大的空間)
3.繼承的原則
- 何時選擇繼承讹语?
B是一個A嗎?
如果是則讓B做A的子類蜂科。
- 繼承必須是同種類型間繼承顽决,反映的是從一般到特殊的關系。
- 常見錯誤:汽車輪子成為汽車子類是錯誤的导匣。(原因:汽車輪子不是汽車)
4.Java只支持單繼承才菠,不允許多繼承
- 單繼承:一個子類只能有一個父類
多繼承:一個子類可以有多個父類(只有C++允許多繼承)
- 可以有多重繼承,如類B繼承類A贡定,類C繼承類B赋访,那么類C間接繼承了類A
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者