static修飾的方法重寫問題

2022-04-13 10:06:18 字數 740 閱讀 8263

靜態的方法不能被重寫,他能夠被子類重新宣告。也就是說在子類中如果有相同名的靜態方法,形參列表也相同,此時編譯器編譯時不報錯,但是此時這個子類方法是屬於重新宣告方法,而不是重寫它。此時靜態方法是沒有多型的。

多型shape shape = new rectangle();

shape.getarea();

實際上在執行期的時候呼叫哪個方法取決於是哪個物件呼叫他的,規則是優先呼叫自己的這個getarea方法,如果自己沒有這個方法就呼叫父類的getarea()方法

例如:

改成用static修飾後:

所以說從語義就可以看出static、final、private方法本身都是編譯期繫結的(也叫前期繫結)這些方法不存在多型,他們是在還沒有執行的時候,程式在編譯器裡面就知道該呼叫哪個類的哪個方法了,而其他可觀察的普通方法的繫結是在執行的時候根據具體的物件決定的,因為從語義上看這些方法是可被繼承的,有了多型而造成了不確定性。

static修飾的方法不存在重寫

static修飾的方法 子父類中同名同參的方法要麼都被static修飾,要麼都不被static修飾。被static修飾的不會構成方法的重寫。靜態方法不存在重寫 public class demo02 class apublic voidb public static voidc class bext...

Static修飾方法

static 修飾方法 1 static修飾的方法被稱之為靜態方法也叫作類方法,加static的方法,可以通過類名直接訪問,也可以通過物件名訪問,而不加static只能通過物件名訪問,加了static的方法,不能再內部寫this,因為直接用類名點方法的時候,沒有當前物件 2 加了static的方法,...

static修飾的方法不能被重寫可以被繼承

今天我們談談為什麼抽象類中不能有靜態的抽象方法以及static修飾的方法不能被重寫可以被繼承 1 static修飾的方法不能被重寫可以被繼承 我們知道static修飾的方法為靜態方法,可以直接使用類名.方法名進行呼叫,即該方法不屬於某個物件屬於該類。我們根據下面的例子在看看static修飾的方法是否...