[問題] interface implement 請益

作者: paulstone (SIMON STONE)   2019-04-10 17:17:35
手機排版請見諒
求問,當一類別A實作介面B時,已知B有定義方法C。
若A的父類別有與C同名同參數與回傳設定的方法時,A需要實作C嗎?
另外的問題是那B定義C的意義在哪?
把問題打成文字感覺答案也出來了XD但想確認一下
作者: p31819 (凜大小姐~最高!!)   2019-04-10 17:59:00
介面不能有定義的方法
作者: paulstone (SIMON STONE)   2019-04-10 18:19:00
呃,是有定要名稱跟參數但沒有實作內容
作者: ssccg (23)   2019-04-10 19:09:00
A extends P implements BB有個方法宣告C,P有個方法M與C的signature相同A會繼承M,所以M就是A對C的實作方法,不是不用實作如果A裡面再寫一個N與C的signature相同,當然也與M相同就變成N override M了B定義C的意義在,其他用B的哪知道他用的B是個A還是P還是其他,當然就照著B定義的C去使用啊↑ 更正P沒有implements B的話,P不能被當成B用
作者: paulstone (SIMON STONE)   2019-04-10 19:30:00
感謝回應,但A沒有實作B的話還是可以用C壓
作者: ssccg (23)   2019-04-10 23:34:00
跟A能不能用無關,問題在其他只知道B不知道A的人能不能用至於為什麼其他人要只用B,不直接import A,或是更根本的為什麼要有介面這東西,就要自己去看看多型觀念了
作者: kohmiho (kohmiho)   2019-04-13 00:05:00
A 沒有 implement C 的話,compile 不會成功

Links booklink

Contact Us: admin [ a t ] ucptt.com