看板 java 關於我們 聯絡資訊
手機排版請見諒 求問,當一類別A實作介面B時,已知B有定義方法C。 若A的父類別有與C同名同參數與回傳設定的方法時,A需要實作C嗎? 另外的問題是那B定義C的意義在哪? 把問題打成文字感覺答案也出來了XD但想確認一下 -- posted from bbs reader hybrid on my Google Pixel 2 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.218.7.134 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1554887857.A.C95.html
p31819: 介面不能有定義的方法 04/10 17:59
paulstone: 呃,是有定要名稱跟參數但沒有實作內容 04/10 18:19
ssccg: A extends P implements B 04/10 19:09
ssccg: B有個方法宣告C,P有個方法M與C的signature相同 04/10 19:11
ssccg: A會繼承M,所以M就是A對C的實作方法,不是不用實作 04/10 19:11
ssccg: 如果A裡面再寫一個N與C的signature相同,當然也與M相同 04/10 19:12
ssccg: 就變成N override M了 04/10 19:12
ssccg: B定義C的意義在,其他用B的哪知道他用的B是個A還是P還是其 04/10 19:13
ssccg: 他,當然就照著B定義的C去使用啊 04/10 19:14
ssccg: ↑ 更正P沒有implements B的話,P不能被當成B用 04/10 19:15
paulstone: 感謝回應,但A沒有實作B的話還是可以用C壓 04/10 19:30
ssccg: 跟A能不能用無關,問題在其他只知道B不知道A的人能不能用 04/10 23:34
ssccg: 至於為什麼其他人要只用B,不直接import A,或是更根本的為 04/10 23:35
ssccg: 什麼要有介面這東西,就要自己去看看多型觀念了 04/10 23:36
kohmiho: A 沒有 implement C 的話,compile 不會成功 04/13 00:05