java中子類可以繼承父類的靜態方法嗎

2021-03-07 05:51:10 字數 799 閱讀 3153

1樓:匿名使用者

其實樓主只要理解static修飾的成員在記憶體中的分配情況就能理解;

以樓主**為例:

1.首先宣告一點: static修飾的變數/函式優行於該類物件存在; 隨著類的載入而載入,而這時還不需要物件; 這也是靜態**可用類名. 出來的原來;

2.理解以上就可推斷出很多;eg:

2.1 假設有b b=new b();

則這時因為繼承的關係,會一直呼叫到a的構造方法。這樣就會把a,b中兩個print()都加入進方法區, 但a的print()方法在a對應的區域,b的print方法在b中對應的區域;

此時我們用b,print()呼叫的是b中的print();

2.2 假設有a a=new b();

此時因為編譯器在編譯時認為a的型別是a,所以呼叫的是a中的print();

//這也是父類物件不能呼叫子類物件的特有方法的原因.。

而在執行時, jvm會發現a的真實型別是b,所以a可向下轉型為b型別;這時就可以呼叫子類特有方法

//這也是為什麼可以向下轉型,

2樓:黑馬程式設計師

不可以,靜態方法不能繼承,也不能覆蓋。

3樓:營化衡巧春

若父類的static

方法,子類可以訪問時,則:能繼承,能覆蓋,但不能重寫(重寫只針對非static方法)。

即使在子類中有一個與父類具有相同方法標籤(方法名相同,引數型別相同,返回值型別相同,甚至連訪問級別也相同),也只能說明是對子類又新建了一個與父類同名的靜態方法,而不是對父類的靜態方法的重寫.

java中繼承抽象方法的非抽象子類需要重寫抽象類中的全部方法,那麼介面呢,繼承介面需要重寫全部方法麼

你只要記得介面就是一個特殊的抽象類。實現它的類它必須對其所有方法進行重寫。介面是個比較抽象的東西。它一般來說可看作是1個功能擴充套件的類。比如你已經寫好了1個類。而且也已經寫好了所有的方法通俗點說就是實現了所有的功能。但現在如果又要多增加個功能。而又不想修改源 的情況下。你就可以考慮實現介面。介面裡...

JAVA我其實搞不懂您剛才說的父類和子類的那個異常,可否詳細說下

1.首先說明父異常能捕獲子異常是指 catch exception e 中的e,如果你catch了一個異常,這個異常必須是e的子類,不能使e的父類.2.比如public void method throws exception 那麼你的另一個類的a 方法呼叫到了這個method 方法,那麼這個所謂的...

PSP3006,最低價1050,貌似還可以繼續低價,請問翻新機的可能多大?PS 符合鑑別翻新機

psp3000麼?3000目前沒破解版的 1050 貌似可以入手.看 是不是翻新機,可以看電池倉內的螺絲有沒有用過的痕跡.然後 就是看看 機身有沒有劃痕啊,灰塵啦 之類的.不推薦你買 沒破解版 6.0以上的要等破解 只看要等到何時了,可以去 多玩 或者 電玩巴士 去淘淘 有很多二手的很適合入手.大陸...