作者mauve (mauve是淡紫色)
看板java
標題[問題] 宣告的子類別無法呼叫interface裡的方法
時間Fri Jun 15 14:41:09 2018
這是朋友的作業,我試著拿來自己做
遇到問題我也沒辦法問他,因為他不會
題目規定要建立一個父類為物件,然後宣告其子類別
最後必須要呼叫子類別介面實作的方法
這是題目:
http://i.imgur.com/Q1005pR.jpg
我寫出來的程式:
http://i.imgur.com/BCPhf31.jpg
主要是用父類(Shape) 建立物件
然後宣告成其子類(Rectangle)
其子類(Rectangle) 有實作iPerimeter
但是父類(Shape) 沒有
因此編譯的時候沒辦法呼叫Rectangle的方法(perimeter)
因為Shape裡面沒有定義該方法(perimeter)
那這樣,我要用什麼方式才能依照題意建立基於Shape的Rectangle物件,去呼叫Rectangle的方法perimeter?
還是我哪裡會錯意或是我根本就寫錯了?
謝謝大家!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.110.30.93
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1529044874.A.437.html
1F:→ ssccg: 比較合理的是Shape也實作iPerimeter(不用實作perimeter) 06/15 14:51
我想應該就是這樣吧... 這老師題目沒寫清楚不是第一次了
2F:→ ssccg: 這是題目沒設計好,如果完全不更動題目,那就必須在5那步檢 06/15 14:52
3F:→ ssccg: 查並cast成可以呼叫perimeter的類別/介面再來呼叫 06/15 14:53
4F:→ pttworld: 出題目沒寫清楚 06/15 15:01
5F:推 swpoker: 轉型啊 06/15 17:55
這麼一說轉型好像也行一開始有想到但沒想那麼深,謝謝你們。
※ 編輯: mauve (110.28.225.205), 06/15/2018 19:23:15
※ 編輯: mauve (110.28.225.205), 06/15/2018 19:27:32
6F:推 THEWORLDS: 題目出得不錯啦,讓你知道沒有轉型不能用 06/19 12:10
7F:→ THEWORLDS: JAVA有個動態繫結可以自動呼叫子類別方法可以去看看 06/19 12:10