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

2022-02-05 23:58:22 字數 1009 閱讀 1748

今天我們談談為什麼抽象類中不能有靜態的抽象方法以及static修飾的方法不能被重寫可以被繼承

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

我們知道static修飾的方法為靜態方法,可以直接使用類名.方法名進行呼叫,即該方法不屬於某個物件屬於該類。

我們根據下面的例子在看看static修飾的方法是否可以被重寫:

---------------------

public

class

staticlearnig }/*

結果:superclass a

subclass b

*/class

superclass

//非靜態方法

public

void

b()}

class

subclass extends superclass

//非靜態方法

public

void

b()}

上面的例子我們可以清晰的看出static修飾的方法根本就沒有重寫。static方法引用的時候應該用類名來引用,而不是物件。同時static方法不參與繼承,所以在繼承體系裡面也不存在重寫的說法。

classa}

class

b extends a{}

public

class

test }//

結果:a

//證明靜態方法可以被繼承

靜態的方法可以被繼承,但是不能重寫。如果父類中有乙個靜態的方法,子類也有乙個與其方法名,引數型別,引數個數都一樣的方法,並且也有static關鍵字修飾,那麼該子類的方法會把原來繼承過來的父類的方法隱藏,而不是重寫。通俗的講就是父類的方法和子類的方法是兩個沒有關係的方法,具體呼叫哪乙個方法是看是哪個物件的引用;這種父子類方法不在存在多型的性質。

對於static修飾的方法有了一定的了解,這裡大家有沒有想過乙個問題為什麼abstract修飾的方法是不可同時是static修飾的呢?

static方法不能被繼承

今天試驗了一下,的確是這樣,寫在這裡mark一下 package test.staticoverride public class parent public void youcanoverrideme package test.staticoverride public class child e...

Static修飾方法

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

static修飾的靜態方法

1 static修飾的方法 稱為 靜態方法 或者 類方法 2 靜態方法的呼叫 類名.方法名 class helloworld static void main 3 注意 a 靜態方法中可以直接呼叫同類中的靜態成員,但不能直接呼叫非靜態成員 若要訪問 非靜態成員,可以通過建立類的物件 來訪問非靜態成員...