作者jaw109 (泼文章都是为了养小鸡)
看板java
标题Re: [问题] 想请问interface的具体意义
时间Tue Jan 23 09:29:00 2007
※ 引述《godfat (godfat 真常)》之铭言:
: ※ 引述《jaw109 (泼文章都是为了养小鸡)》之铭言:
: : 恕删.....
: : 有朋友问到我所谓的静态动态是什麽意思
: 虽然懂你的意思,不过你的用词老实讲…实在不太好
: 因为动态连结(dynamic binding)跟静态连结(static binding)
: 是有其他意思的,跟你在这里指的东西关系不大
: : 我对Java这一行很有兴趣....
: : (不过, 电动雨刷那个token应该要改成交通工具吧? 至少C++是如此的...)
: why not? base pointer point to derived instance
: 很合理啊
: 电动雨刷同样是汽车的 superclass, 这样做并没什麽不对
: : 如果我这麽写(Java code)
: : 交通工具 Civic = new 汽车();
: : Civic.刷刷刷(); // 会执行刷雨刷的动作,这OK
: : 交通工具 Dio = new 机车();
: : Dio.刷刷刷(); // 这会发生什麽事情?
: : do nothing吗?
: 交通工具有「刷刷刷」这个 method 吗?
: 没有的话,你两边都会 compile error, 就算汽车有实作「刷刷刷」也一样
: 有的话,就要看你交通工具怎麽实作「刷刷刷」
: 这跟「电动雨刷」一点关系也没有
: 因为交通工具根本就不知道「电动雨刷」的存在
: 除非你加上去……
: 但如果你这麽做,就违反你自己本身对「交通工具」的前提了
: 这个问题跟 C++ 或 Java 并没有关系
抱歉我困惑了,因为要这麽使用的话
有点违反我对物件导向的理解
容我再举个例子
我:"可以跟你一起去吃饭吗"
正妹:"你有存在任何
交通工具吗?"
我:"我有一台Civic跟一台Dio, 但是Civic被我爸开走了"
正妹:"Dio是一种
汽车吗?"
我:"不,Dio是一种
机车"
正妹:"你没有任何一辆
汽车,那麽我才不跟你出去呢"
我:".........."
我一直以为 这样的架构下 交通工具才是这整个family的super class
如果电动雨刷才是super class的话...
那麽正妹应该会这麽问:"你有存在任何
电动雨刷吗?"
这.....这我不是很能理解耶....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.86.69.46
※ 编辑: jaw109 来自: 219.86.69.46 (01/23 09:30)