多型 父類宣告,子類實現

2021-10-25 20:00:52 字數 829 閱讀 1190

public

class

base

public

void

callname()

static

class

subextends

base

}public

static

void

main

(string[

] args)

}

(1) 父類靜態**塊(包括靜態初始化塊,靜態屬性,但不包括靜態方法)

(2) 子類靜態**塊(包括靜態初始化塊,靜態屬性,但不包括靜態方法 )

(3) 父類非靜態**塊( 包括非靜態初始化塊,非靜態屬性 )

(4) 父類建構函式

(5) 子類非靜態**塊 ( 包括非靜態初始化塊,非靜態屬性 )

(6) 子類建構函式

其中:類中靜態塊按照宣告順序執行,並且(1)和(2)不需要呼叫new類例項的時候就執行了(意思就是在類載入到方法區的時候執行的)

2.其次,需要理解子類覆蓋父類方法的問題,也就是方法重寫實現多型問題。

base b = new sub();它為多型的一種表現形式,宣告是base,實現是sub類, 理解為 b 編譯時表現為base類特性,執行時表現為sub類特性。

當子類覆蓋了父類的方法後,意思是父類的方法已經被重寫,題中 父類初始化呼叫的方法為子類實現的方法,子類實現的方法中呼叫的basename為子類中的私有屬性。

由1.可知,此時只執行到步驟4.,子類非靜態**塊和初始化步驟還沒有到,子類中的basename還沒有被初始化。所以此時 basename為空。 所以為null。

子類繼承父類,必須宣告父類的建構函式

class entity def init self,object type print parent class init called self.object type object type def get context length self raise exception get con...

用父類宣告物件和用子類宣告物件

class father class son extends father class test 首先都是訪問本身類的東西 方法與屬性 的.父類定義就呼叫父類的,子類定義的話就呼叫子類的 當乙個父類定義的變數引用乙個子類例項時,呼叫乙個方法時,這個方法將會呼叫子類,因為方法被覆蓋.情況就特殊在父類定...

子類與父類,

public class a public virtual void testm2 public class b a public new void testm2 很多時候子類override是為了基類使用時可以有靈活的構造配置,多型 使用方總是基類物件所以如果子類有它自己的成員 包括new的成員函...