繼承以及抽象筆記

2021-10-03 10:47:13 字數 1558 閱讀 9151

1.方法重寫要注意的事項:

方法重寫是發生在子父類之間的關係。

子類方法覆蓋父類方法,必須要保證許可權大於等於父類許可權。

子類方法覆蓋父類方法,返回值型別、函式名和引數列表都要一模一樣。

2.繼承後構造器的特點:

子類構造器執行的時候,都會在第一行預設先呼叫父類無引數構造器一次。

子類構造器的第一行都隱含了乙個super()去呼叫父類無引數構造器,super()可以省略不寫。

3.super和this用法格式:

this.成員變數 – 本類的

super.成員變數 – 父類的

this.成員方法名() – 本類的

super.成員方法名() – 父類的

super(…) – 呼叫父類的構造器,根據引數匹配確認

this(…) – 呼叫本類的其他構造器,根據引數匹配確認

注意:子類的每個構造方法中均有預設的super(),呼叫父類的空參構造.

手動呼叫父類構造會覆蓋預設的super()。

super() 和 this() 都必須是在構造方法的第一行,所以不能同時出現。

super(…)是根據引數去確定呼叫父類哪個構造器的。

4.抽象(abstract)

abstract是抽象的意思,用於修飾方法方法和類,修飾的方法是抽象方法,修飾的類是抽象類。

定義格式:

修飾符 abstract 返回值型別 方法名(引數列表);

注意:如果乙個類包含抽象方法,那麼該類必須是抽象類。注意:抽象類不一定有抽象方法,但是有抽象方法的類必須定

義成抽象類。

注:抽象方法不能建立鍵物件,但是具有抽象方法

抽象模板案例:

測試類:

package abstracttest05;

public class demo

}父類:

package abstracttest05;

public abstract class person

public person()

public string getid()

public void setid(string id)

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

//建立抽象方法

public abstract void man();}

兩個子類:

package abstracttest05;

public class yuan extends person

public yuan()

@override

public void man()

}package abstracttest05;

public class jnl extends person

public jnl()

@override

public void man()

}

繼承 介面 抽象

繼承是物件導向最顯著的乙個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力 抽象方法是一種特殊的方法 它只有宣告,而沒有具體的實現 介面泛指供別人呼叫的方法或者函式 抽象類與介面的方法 1 抽象類可以提供成員方法的實現細節,而介面中只能存在public ...

抽象和繼承

抽象應該盡可能有多的共同 而擁有盡可能少的資料,乙個物件從超類繼承來的 在不使用的時候不會造成資源浪費,而資料的移動是從抽象到具體,乙個物件的資料不論是否使用都會占用資源。繼承關係分為 類對介面的實現和類對類的繼承,只要有可能盡量使用合成,而不要使用繼承達到復用的目的 使用繼承關係 1 子類是超類的...

繼承 抽象 多型

繼承 在php中,使用extends實現繼承,子類 派生類 繼承父類 基類 繼承是為了擺脫重複 繼承 析構方法 子類繼承父類時,子類沒有構造方法,例項化子類物件時,會執行父類的構造方法。子類如果有自己的構造方法,例項化子類物件時,只會自動執行子類自己的構造方法。在子類的構造方法中,使用 parent...