Re: [問題] 想請問interface的具體意義
※ 引述《jaw109 (潑文章都是為了養小雞)》之銘言:
[deleted]
: 那麼正妹應該會這麼問:"你有存在任何電動雨刷嗎?"
: 這.....這我不是很能理解耶....
我還以為我之前的回文會令你理解...
我起初以為你的電動雨刷只是你不明白
interface 的意思, 但看來你是對 OO thinking
有錯誤認知
電動雨刷不該是交通工具的 class hirerarchy 當
中出現. 雨刷和交通工具的關係該是 has-a 而非 is-a
你家中的 Civic "是" 一個電動雨刷嗎?
比較正常的思維是有一個: "能刷雨" 的 interface.
那麼, 如果你的思維中, 不是所有交通工具都有
雨刷, 那麼 class hierarchy 就是
class 交通工具;
interface 能刷雨 {
void 刷雨();
}
class 汽車 extends 交通工具 implements 能刷雨;
class 機車 extends 交通工具;
class Civic extends 汽車
class 山葉機車 extnds 機車;
那麼, 你做:
Civic myCivic = new Civic();
山葉機車 myYamaha = new 山葉機車();
汽車 car = myCivic; //ok
交通工具 transportationMeans = myCivic; //ok
能刷雨 rainWashable = myCivic; //ok
transportationMeans = myYamaha; //ok
但如果你
rainWashable = myYamaha;
就不合理了, 因為山葉機車根本就不是 能刷雨的
明白了嗎?
Alien
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.72.0.45
※ 編輯: adrianshum 來自: 202.72.0.45 (01/23 10:32)
※ 編輯: adrianshum 來自: 202.72.0.45 (01/23 10:34)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 29 篇):