作者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
1F:推 PsMonkey:其实... 用中文感觉很怪...... 10/14 21:16
单纯喜好问题,我不喜欢人家中英文混杂,然後英文的部分又用的不好。
2F:→ adrianshum:我个人是宁愿用 pointer 一词。reference 常有不清混淆 10/14 22:33
3F:→ adrianshum:还有其实 Java 的 ref 根本就是概念上的 pointer,只是 10/14 22:34
4F:→ adrianshum:没有像C/C++那种 pointer arithematics 而己 10/14 22:34
5F:→ Chikei:ptr +1,用ref常会有人问call by ??跟参照到哪个实体的问题 10/14 22:59
6F:推 PsMonkey:置底文的名词定义又要重新再拿来战一次了 XD 10/14 23:10
※ 编辑: dream1124 来自: 118.168.65.86 (10/15 00:20)
7F:→ jej:到java8的确有对一级类别加强 10/15 00:47