作者chenjoe (MAKOTO)
看板Soft_Job
标题Re: [请益] 我这样解释OOP对吗?
时间Sat Nov 18 18:22:52 2017
Re: [请益] 我这样解释OOP对吗?
(类别)杯子的概念
(属性)材质,外型,颜色,目前容量,最大容量,内容物
(方法)倒入,倒出
(事件)if(目前容量>最大容量) then 漏出
封装---使用杯子的人(User)只能用倒入,倒出方法去控制杯子的目前容量属性
其余属性以User的角度来说无法控制
继承---当新造一个杯子的时候,制作者(开发人员)可以决定材质,外型,颜色,最大容量
当一种新的杯子的概念生成时,继承杯子的部分属性
继承杯子的概念,OverWrite材质为玻璃
杯子------------------------------------>玻璃杯
多形---以玻璃杯为概念,制作实体,并更改容量,外型与颜色
生成实体(New),设定外型
玻璃杯------------------------------->高脚玻璃杯
生成实体(New),设定颜色
玻璃杯------------------------------->蓝色玻璃杯
生成实体(New),设定容量与外型
玻璃杯------------------------------->啤酒杯
介面---为物件追加一个原来类别中不存在的方法
有天在酒吧有两个人在吵架,其中一人想拿东西打人
在他面前刚好有三个杯子,於是就砸出去了
高脚玻璃杯:打人(继承打人介面)
蓝色玻璃杯:打人(继承打人介面)
啤酒杯:打人(继承打人介面)
当然能拿来打人的不只是杯子,於是他拿了身边的东西
球棒:打人(继承打人介面)
椅子:打人(继承打人介面)
桌子:打人(如果力气够大的话)
不管什麽东西都可以拿来打人,所以打人这个动作就可以称为介面
大概4这样
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.181.102.123
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1511000576.A.084.html
1F:→ loveflames: 介面视上下文,意思可能不同,可能是方法的外观,但 11/18 19:50
2F:→ loveflames: 讲OOP时通常是指另一种 11/18 19:50
3F:→ loveflames: 也就是对方法的规范,跟实作类别有is(或称can-do、wea 11/18 19:56
4F:→ loveflames: k is-a)关系,也有人不会特地去分is跟is-a,像C++就没 11/18 19:56
5F:→ loveflames: 办法区分这两个,只能一律用抽象类别实现 11/18 19:56
6F:嘘 pttuser: 对啦都对,不要再解释了 11/18 20:46
7F:嘘 stitchris: 都对都对... 大家都对 11/19 11:40
8F:推 Void956: 笑了 11/24 16:24