今天我們談談為什麼抽象類中不能有靜態的抽象方法以及static修飾的方法不能被重寫可以被繼承
1 static修飾的方法不能被重寫可以被繼承
我們知道static修飾的方法為靜態方法,可以直接使用類名.方法名進行呼叫,即該方法不屬於某個物件屬於該類。
我們根據下面的例子在看看static修飾的方法是否可以被重寫:
---------------------
publicclass
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 靜態方法中可以直接呼叫同類中的靜態成員,但不能直接呼叫非靜態成員 若要訪問 非靜態成員,可以通過建立類的物件 來訪問非靜態成員...