作者adrianshum (Alien)
看板java
标题Re: [问题] 想请问interface的具体意义
时间Tue Jan 23 10:31:12 2007
※ 引述《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)