繼承和多態性如何與靜態方法一起工作?有人可以解釋什麼是適當的輸出應該在這裏以及它是如何派生的?靜態方法的繼承和多態性
class A { public static int get() { return 17; } }
class B extends A { public static int get() { return 42; } }
Main
A x = new B();
x.get();
錯誤消息,
靜態get()方法從A型應以靜態方式
我想我知道如何訪問到它訪問靜態的方式,但是這是從課堂上提問和其排序意味着一個或另一個值將返回
在我們的計劃,我們的類定義:
class A { public static int get() { return 17; } }
class B extends A { public static int get() { return 42; } }
和其他地方,我們聲明A x = new B();
什麼號碼將呼叫x.get()
回來嗎?
嘗試運行它。 –
作爲Sotirios指出,'A x = new B();'將返回17在'x.get();''B y = new B();'將在'y.get();'返回42; – Matthew
你可以得到一些特殊的軟件,它會告訴你任何Java程序的輸出。它非常適合解決這樣的問題。你只需要給你的程序,你就可以找出程序的輸出結果。我嚴肅地建議使用這種軟件來解決這類問題 - 這將爲您節省大量時間。你可以爲自己找到答案,而不必信任你從未見過的人。如果你想知道這個驚人的軟件叫做什麼......它是「Java」。嘗試一下。 –