看板 Soft_Job 關於我們 聯絡資訊
Re: [請益] 我這樣解釋OOP對嗎? (類別)杯子的概念 (屬性)材質,外型,顏色,目前容量,最大容量,內容物 (方法)倒入,倒出 (事件)if(目前容量>最大容量) then 漏出 封裝---使用杯子的人(User)只能用倒入,倒出方法去控制杯子的目前容量屬性 其餘屬性以User的角度來說無法控制 繼承---當新造一個杯子的時候,製作者(開發人員)可以決定材質,外型,顏色,最大容量 當一種新的杯子的概念生成時,繼承杯子的部分屬性 繼承杯子的概念,OverWrite材質為玻璃 杯子------------------------------------>玻璃杯 多形---以玻璃杯為概念,製作實體,並更改容量,外型與顏色 生成實體(New),設定外型 玻璃杯------------------------------->高腳玻璃杯 生成實體(New),設定顏色 玻璃杯------------------------------->藍色玻璃杯 生成實體(New),設定容量與外型 玻璃杯------------------------------->啤酒杯 介面---為物件追加一個原來類別中不存在的方法 有天在酒吧有兩個人在吵架,其中一人想拿東西打人 在他面前剛好有三個杯子,於是就砸出去了 高腳玻璃杯:打人(繼承打人介面) 藍色玻璃杯:打人(繼承打人介面) 啤酒杯:打人(繼承打人介面) 當然能拿來打人的不只是杯子,於是他拿了身邊的東西 球棒:打人(繼承打人介面) 椅子:打人(繼承打人介面) 桌子:打人(如果力氣夠大的話) 不管什麼東西都可以拿來打人,所以打人這個動作就可以稱為介面 大概4這樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.181.102.123 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1511000576.A.084.html
loveflames: 介面視上下文,意思可能不同,可能是方法的外觀,但 11/18 19:50
loveflames: 講OOP時通常是指另一種 11/18 19:50
loveflames: 也就是對方法的規範,跟實作類別有is(或稱can-do、wea 11/18 19:56
loveflames: k is-a)關係,也有人不會特地去分is跟is-a,像C++就沒 11/18 19:56
loveflames: 辦法區分這兩個,只能一律用抽象類別實現 11/18 19:56
pttuser: 對啦都對,不要再解釋了 11/18 20:46
stitchris: 都對都對... 大家都對 11/19 11:40
Void956: 笑了 11/24 16:24