class
a
public
a()
void
say()
}
class
b
extends
a
public
b()
void
say()
}
public
class
hello
}
此段程式執行結果為:
abab2ab2;
解析一、
1.例項化b b所在類未載入 首先載入b所在類b b有父類a 所以類載入順序 a,b 列印ab
2.例項化b 呼叫父類構造方法 再呼叫自身構造方法 列印ab
3.b中重寫了父類say 直接呼叫本身類的say 列印2
4.第二次例項化b 類載入只會執行一次 1中已完成 直接重複2 3步驟 列印ab2
abab2ab2;
解析二、
載入順序 父類靜態成員->父類靜態**塊->子類靜態成員->子類靜態**塊->父類普通成員->父類**塊->父類建構函式->子類普通成員->子類**塊->子類建構函式
只有類第一次載入的時候載入靜態成員與**塊
載入順序 父類靜態成員->父類靜態**塊->子類靜態成員->子類靜態**塊->父類普通成員->父類**塊->父類建構函式->子類普通成員->子類**塊->子類建構函式
只有類第一次載入的時候載入靜態成員與**塊
C 父類與子類的關係
這裡,我做乙個整合。這裡前期要極其注意修飾符之間的關係。1.main呼叫方法,其實我也不知道叫什麼,大家看 吧。using system using system.collections.generic using system.linq using system.text using system...
子類與父類,
public class a public virtual void testm2 public class b a public new void testm2 很多時候子類override是為了基類使用時可以有靈活的構造配置,多型 使用方總是基類物件所以如果子類有它自己的成員 包括new的成員函...
關於父類子類繼承關係
一.繼承 子類可以直接復用父類中的成員.子類繼承父類所有方法的宣告和實現 非私有的例項變數以及協議 繼承時要在.h中宣告一下 繼承具有單根性和傳遞性 繼承的根類 大多都繼承自 nsobject 類,所以在定義乙個類時,要繼承nsobject 類。繼承就是 優化公共部分交給父類 例如 person是父...