作者dream1124 (全新開始)
看板java
標題Re: [問題] 將callback轉型成原本的class
時間Mon Oct 14 20:33:36 2013
※ 引述《liu2007 (薯)》之銘言:
: ※ 引述《bleed1979 (十三)》之銘言:
: 我的問題在於說如果Class C知道SpecialCallback 所帶進來的東西是Class A
: cast一下,那我前面寫的東西不就做白工了...??
讓 Class C 只能操作部分 Class A 的方法,就是產生 Interface 的目地之一,
因此以你的例子來說,不會有所謂 Cast 型態到 A 就能用的可能,
資料型別根本就不同。
你可以把 Interface 的概念想成一種程式碼與程式碼之間的交易合約,
透過 Interface 上面訂定的合約內容,呼叫方餵參數給被呼叫方,
被呼叫方依照方法上面的回傳型態給回傳值,履行合約。
不管未來 Class A 和 Class C 長成什麼鬼樣子,
只要呼叫方和被呼叫方都有遵守合約,這個合約就能正常進行。
你要是問,如果 Class C 實作者知道 Class A 這個型別,
甚至只要知道他的名稱,這樣不會有辦法可以亂搞嗎?
套一句以前學長的回答︰「你就罵他啊!」
本來界面存在的目地就不是為了讓人不照原本的規劃,隨意執行程式啊~
還有請別再 pointer 來 pointer 去了,非常不專業又好礙眼。
打「參考」兩個字不管你用什麼輸入法都不用敲鍵盤那麼多次。
Callback 也是一樣,你的程式碼只是在運用界面的特性而已,
跟人家談 callback 的情境完全不一樣。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.127.139
推 PsMonkey:其實... 用中文感覺很怪...... 10/14 21:16
單純喜好問題,我不喜歡人家中英文混雜,然後英文的部分又用的不好。
→ adrianshum:我個人是寧願用 pointer 一詞。reference 常有不清混淆 10/14 22:33
→ adrianshum:還有其實 Java 的 ref 根本就是概念上的 pointer,只是 10/14 22:34
→ adrianshum:沒有像C/C++那種 pointer arithematics 而己 10/14 22:34
→ Chikei:ptr +1,用ref常會有人問call by ??跟參照到哪個實體的問題 10/14 22:59
推 PsMonkey:置底文的名詞定義又要重新再拿來戰一次了 XD 10/14 23:10
※ 編輯: dream1124 來自: 118.168.65.86 (10/15 00:20)
→ jej:到java8的確有對一級類別加強 10/15 00:47