今天閱讀《設計模式示例》,看到一段代碼涉及到了interface,implements和extends,其實在C++中經常用到。今天特百度,比較了一下:
interface是一個接口,類似於C++中的純虛函數。
舉個簡單的例子,有一類東西,都具有同樣的行為,而這個共有的行為實現方式不一樣。
如:筆這類東西,都有共同的行為“寫”,鉛筆、毛筆、圓珠筆、鋼筆都有“寫”的功能,但實現起來不一樣。那么我們就可以抽象出一個接口“筆”
interface 筆{
void 寫();
}
implement的意思是指在鉛筆、毛筆、圓珠筆要有”寫“的這個功能,就需要實現接口”筆“的”寫“功能。而這個關鍵字implement就是實現的意思,如:
class 鉛筆 implement 筆{
void 寫(){
用鉛芯畫
}
}
class 鋼筆 implement 筆{
void 寫(){
用墨水畫
}
}
而你提到的extends是指一個繼承關系,子類繼承父類的功能。舉個簡單的例子:父類”燈“具有”發光“的功能,而子類"台燈",只需要extends父類”燈“就擁有了發光的共功能。
接口和繼承的區別,由於時間有限,你參考這篇帖子