Re: [問題] 想請問interface的具體意義
※ 引述《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)
討論串 (同標題文章)