[OCAJP][OCPJP]多型與覆寫


Given the class definitions:

And the code fragment of the main() method,

What is the result?

A.

Java
Java
Java

B.

Java
Jeve
va

C.

Java
Jeve
ve

D. Compilation fails

題解

由於「doStuff」是物件方法,因此會發生覆寫(Override)的作用。不管物件如何向上轉型,都需從它的實體物件的所屬類別型態開始向上尋找最後發生覆寫的方法。在這個題目中,「Alpha」、「Beta」、「Gamma」都有覆寫「doStuff」物件方法,所以它們的實體物件都會使用到自己的「doStuff」物件方法。因此輸出結果為:

Java
Jeve
va

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章