c 靜態方法不可以直接呼叫例項方法

2021-09-08 00:21:29 字數 281 閱讀 6444

靜態方法是一種特殊的成員方法,它不屬於類的某乙個具體的例項。非靜態方法可以訪問類中的任何成員,而靜態只能訪問類中的靜態成員。

看這個例子:

class a

在這個類定義中,靜態方法f()可以訪問類中靜態成員y,但不能訪問非靜態成員x。這是因為,x作為非靜態成員,在類的每個例項中都占有乙個儲存(或者說具有乙個副本),而靜態方法是類所共享的,它無法判斷出當前的x是屬於哪個類的例項,所以不知道應該到記憶體的哪個位址去讀取當前x的值。而y是靜態成員,所有類的例項都公用乙個副本,靜態方法f使用它就不存在什麼問題。

不可以被重寫的方法

重寫是發生在繼承的條件下。當乙個類繼承某個類時,這個類可以重寫父類中的一些方法的 不是所有的方法都可以被重寫 可以實現與父類不同的功能。當乙個類繼承某個介面時,這個類必須要重寫父介面中的所有抽象方法。靜態方法 static修飾的方法,父類的靜態方法不可以被重寫,可以繼承 final修飾的方法 父類中...

成員內部類不可以有靜態屬性

成員內部類不可以有靜態屬性。如果在外部類的外部訪問內部類,使用out.inner.建立內部類物件時應注意 在外部類的內部可以直接使用inner s new inner 因為外部類知道inner是哪個類,所以可以生成物件。而在外部類的外部,要生成 new 乙個內部類物件,需要首先建立乙個外部類物件 外...

C 函式過載,為什麼C不可以?

乙個詞可以有多重含義,我們可以根據上下文判斷該詞真實的含義,即該詞被過載了 比如有句話說的是 能穿多少穿多少 在冬天和夏天來看這句話的理解是不一樣的。函式過載是函式的一種特殊情況,c 允許在同乙個作用域中宣告幾個功能類似的同名函式,這些同名函式的形參列表 引數個數或型別或順序 必須不同。注意 如果兩...