Given:



What is the output?

A.

X X X

B.

X Y X

C.

Y Y X

D.

Y Y Y

題解

print方法在傳入物件的時候,會去呼叫物件的toString來取得字串值。由於toString是物件方法,因此只需注意物件實體是哪個就好,多型型態不用去管。

程式執行完第10行後,myY變數所參考到的物件是Y物件,myX變數所參考到的物件是Y物件,myZ變數所參考到的物件也是Y物件,這三個Y物件都是同一個物件。第11行之後的輸出,會去執行第19行Y類別內的toString物件方法,所以每個都會輸出「Y 」。