父類中的final private方法不能被繼承,父類中的static方法可以被繼承,但是不能重寫,這三者都屬於前期綁定,java中除了這三種以及構造方法之外剩下的都是后期綁定(運行是綁定).
當父類的引用指向子類時,調用靜態方法看引用,調用普通方法看對象。
靜態的方法可以被繼承,但是不能重寫。如果父類中有一個靜態的方法,子類也有一個與其方法名,參數類型,參數個數都一樣的方法,並且也有static關鍵字修飾,那么該子類的方法會把原來繼承過來的父類的方法隱藏,而不是重寫。通俗的講就是父類的方法和子類的方法是兩個沒有關系的方法,具體調用哪一個方法是看是哪個對象的引用;這種父子類方法也不在存在多態的性質。
java不推薦用對象調用static方法,這會使人混淆,請大家注意。
這也是為什么abstract修飾的method是不可同時是static的原因:
abstract修飾方法,子類需要重寫去實現,主要用於各個子類的實例對象;
static修飾方法,則方法不屬於某個對象,屬於class,可用class名.方法名(),進行調用;
簡單的說abstract實例對象;
而static屬於類。
所以static方法不能是abstract方法。
java動態綁定以及內部實現機制
https://wenku.baidu.com/view/32208418650e52ea55189863.html