在多型中成員函式的特點:
在編譯時期:參閱引用型變數所屬的類中是否有呼叫的方法。如果有,編譯通過,如果沒有,編譯失敗。
在執行時期:參閱物件所屬的類中是否有呼叫的方法。
簡單總結就是:成員函式在多型呼叫時,編譯看左邊,執行看右邊。
class fu
void method2() }
class zi extends fu
void method3() }
public class duotai
}
duotai.class執行後的結果是:zi method_1 //參閱 zi 物件所屬的類中是否有呼叫的方法。
fu method_2//從父類繼承的方法。
在多型中成員變數的特點:
無論編譯和執行,都參考左邊(引用型變數所屬的類)。
在多型中靜態成員函式的特點:
無論編譯和執行,都參考左邊(引用型變數所屬的類)。
class fu
void method2()
static void methed4() }
class zi extends fu
void method3()
static void methed4() }
public class duotai
}
以上**的執行結果是:10 // 引用型變數 f 所屬的類是父類,所以結果是父類中的num = 10
fu method_4 // 引用型所述的類
20 // 引用型變數 z 所屬的類是子類,所以結果還是父類中的num = 20
zi method_4 // 引用型所述的類
靜態字段 靜態函式 成員常量
靜態字段 靜態欄位被類的所有例項共享,所有的例項都訪問同一記憶體塊。因此,如果該記憶體塊的值被乙個例項修改了,這種改變對所有例項是可見的。訪問靜態變數通過類名.欄位名訪問 即使類沒有例項任何物件,也存在靜態字段。如果靜態欄位有初始化語句,不必要在程式執行之前就賦初始值,可以在使用該字段前再賦值 這點...
C 靜態成員 靜態資料成員和靜態函式成員
由關鍵字static修飾說明的類成員,成為靜態類成員 static class member 包括 靜態資料成員和靜態函式成員。類的靜態成員為其所有物件共享,不管有多少物件,靜態成員只有乙份存於公用記憶體中。雖然使用static修飾說明,但與函式中的靜態變數有明顯差異。在類定義中,用關鍵字stati...
C 靜態資料成員初始化及靜態函式成員
1.定義靜態資料成員後要對靜態資料成員進行初始化!靜態資料成員的初始化 資料型別 類名 靜態資料成員 值 2.靜態資料成員往往數私有的,靜態資料成員不能直接訪問,要通過定義為公有的靜態函式成員來訪問靜態資料成員。3.靜態函式成員介面實現時在前面不加 static 字首。4.靜態函式成員,不能直接訪問...