繼承+多型:
code
class
test
//可以除錯一下走走流程
}abstract
class
father
public
virtual
void
print()
//多型,不會被執行到
}class
son : father
public
override
void
print()
//執行結果:in class son: a=10 b=1
}class
g : son
}rt, 類son 中的print 方法在son 類的建構函式體執行之前被執行,
這個情況(繼承+多型)在使用的時候是不是有些注意點。
有點費解,大家談談看法。
下面是幾條關於類例項化的注意點:
1 類中的static 成員只會被例項化一次;
2 當乙個類被訪問(例項化或被訪問靜態成員)時,就會對staitic 成員完成例項化(除非靜態函式呼叫過程中,又呼叫了其他類的靜態成員);
3 例項變數(靜態變數)的初始化總在例項建構函式(靜態建構函式)之前;
4 例項建構函式的呼叫順序:由繼承樹頂端向低端進行呼叫;
5 靜態建構函式的呼叫順序:被訪問順序(參照第2條);
6 子類會自動呼叫父類中的無參建構函式;若父類沒有無參建構函式,則子類必須使用base關鍵字顯式呼叫父類的有參建構函式;
7 子類會隱式獲得父類除建構函式與析構函式以外的所有成員(包括private成員);
8 父類的private成員在子類中也是存在的,但是無法訪問(需要通過基類中》=protected訪問許可權的方法、屬性等來訪問);
例項方法,構造方法和類方法小結
例項方法 可以通過類的例項呼叫物件的方法,也稱成員方法.構造方法的特點 方法名與類名相同。沒有返回值。沒有return,沒有void 不能被除訪問修飾符外的任何修飾符訪問。不能被子類繼承。父級的構造方法不能被子類呼叫,可以通過super語句呼叫父類的構造方法,加入在子類的構造方法中有super語句,...
C 類的建構函式詳解及例項
c 類的建構函式 預設建構函式 如果你定義乙個類,並且沒有給它定義建構函式。編譯器會為這個類提供預設的建構函式。如果你提供了建構函式,編譯器是不會再為你提供乙個預設建構函式的。編譯器提供的預設建構函式什麼程式設計客棧都沒做。類的成員變數將遵守預設的初始化規則。編譯器提供的預設建構函式的初始化規則 在...
Java中構造方法 例項方法 類方法的區別
1.構造方法 構造方法負責物件的初始化工作,為例項變數賦予合適的初始值。必須滿足以下的語法規則 例如以下例子 public class sample public sample int x public int sample int x 1.1.預設構造方法 預設構造方法時沒有引數的構造方法,分為 ...