[OCAJP]多型與繼承

Given:

Which three are valid?

A.

B.

C.

D.

E.

F.

題解

題目提供的程式,繼承關係是:「Beagle是Dog」與「Dog是Pet」,所以「Beagle是Pet」。

選項A,實體化Dog物件,並用Pet型態的物件變數儲存參考,因為「Dog是Pet」,所以這是可以的。

選項B,無法實體化Pet物件,因為Pet是介面(interface)。

選項C,無法實體化Pet物件,因為Pet是介面(interface)。

選項D,實體化Beagle物件,並用Dog型態的物件變數儲存參考,因為「Beagle是Dog」,所以這是可以的。

選項E,實體化Beagle物件,並用Pet型態的物件變數儲存參考,因為「Beagle是Pet」,所以這是可以的。

選項F,實體化Dog物件,並用Beagle型態的物件變數儲存參考,這個不行,因為「Dog不一定是Beagle」。

關於作者

Magic Len

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

相關文章