1樓:Intopass
對於非靜態方法,有幾種呼叫方法。
staticMethod();
this.staticMethod();
instance.staticMethod();
ClassName.staticMethod();
強烈建議只使用第一種直接呼叫和第四種通過類名呼叫的方法。
並且將第一種方法等同於第四種方法,並理解對非靜態方法的都是前期繫結的(編譯期繫結)
編譯後直接呼叫指定的方法,不存在執行期的多型現象。
另外,對於成員變數,不管是靜態的還是非靜態的,始終不存在多型現象。
父類和子類的同名成員變數將同時存在。
2樓:CNife
父類的靜態成員不能被子類過載(override),但可以被子類覆蓋。
當子類的方法呼叫乙個成員變數或方法時,會優先呼叫自己定義的成員;如果自己沒有定義,就尋找父類定義的成員,如果父類有就呼叫父類的成員。
如果父類 Super 定義了靜態變數 value,子類 Son 繼承 Super,那麼 Son.value就是 Super.value;如果 Son 自己定義有靜態的 value,那 Son.
value就不是 Super.value了。
Java 類的繼承例項,為什麼輸出這個?
adri1 宣告M h new H C c new H 呼叫c.f h h.g c 返回in M.f in H.g c的型別是C,傳入引數型別是M 所以呼叫的方法是 M中定義的f M m 返回 M.fh的型別是M,傳入引數型別是C 因為M沒有g C c 的方法,只有過載到g M m 由於不知道是bu...
java中子類有沒有繼承父類的私有變數?
atlanc 確實是繼承了,但是父類臨終前對子類說,這筆遺產,你不能亂動,只能用我的非private方法來動。也就是說,父類的private屬性都會遺傳給子類,但是子類只能沿襲父類的生活習慣來使用這些屬性。 肖遙 我看到官方文件說不能繼承私有成員的時候也懵了。標準答案是 不能繼承 但是這裡的處理是很...
Java子類到底有沒有繼承父類的私有字段?
Seven555 當初自己也有小糾結一下這個問題,不過後來看debug就明白啦public class Person public class Student extends Person 自己在寫個main函式測試一下,new乙個student物件,eclipse的debug結果 實際上有繼承過來...