Java 軍規 2 靜態方法不能被重寫

2021-09-02 04:13:28 字數 502 閱讀 6455

在第一條軍規中說過,重寫方法必需新增@override 註解,如果在不遵守第一條軍規的前提下你是可以及時發下靜態方法是不可以被重寫的;而如果你沒有遵守第一條軍規時,你試圖重寫靜態方法,此時在編譯器是不可能發現該錯誤的。

假設有這樣乙個基類寫道

public class base

public void toother()

public void dosomething(string thing) }

在子類的**如下:寫道

public class sub extends base

@override

public void toother() }

我們在寫乙個測試方法寫道

public class client }

結果是:寫道

我是父類的靜態方法!base.dosomething()

我是子類的非靜態方法!

從結果上我們可以發現靜態方法是不可以被重寫的。

Java的靜態方法不能被重寫(詳解!)

靜態方法,可以通過類直接呼叫 是屬於類的方法,靜態方法在 中的呼叫方式一般形式是 math.abs 當然通過引用該型別物件的變數也可以呼叫,只是通常不這樣使用 例項方法,只能通過物件呼叫 重寫的目的在於父類引用可以根據子類物件的執行時實際型別不同而呼叫不同實現 從而表現出多型。並且,靜態方法無需建立...

java中父類的靜態方法不能被重寫

我們通過下面 來測試 class parent class children extends parent class main 測試結果 parent parent children 1 3 測試如常,很容易理解,看似並沒有什麼不同 而 2 顯示的結果卻是parent。按照常理來說應該是child...

靜態方法不能被重寫 覆蓋,只能被隱藏

為了說明這個例子,下面看一段 class parent public void print2 class child extends parent public void print2 public class main 我們知道,如果乙個類被宣告為父類,例項 new 卻為子類,那麼它呼叫父類中被覆...