[讨论] 面向对象中的 封装、继承 、多态

phnessu4 2009-07-02 04:59:15
加精
关于面向对象的三个基本特征: 封装、继承、多态


上面资料截取自 link

由于文章比较抽象,所以发个帖子跟大家讨论一下....

封装是最容易理解的,有以下几种解释方法:
1. 封装就像你建一个类,然后把这个类的属性和方法定义在一起,同时对这些属性和方法予以“public ,private,protected“等。

2. 该包的包,该漏的漏

3. 就是对数据的隐藏 ,外部用户只需要关心该类的功能和对象,不需要关心具体的实现过程和数据,这是面向对象里面一个很重要的概念

4 . 就像电视,你不需要知道它的内部是由哪些零件组成、如何工作的所以把它们封装起来了,你只知道用遥控器来控制就好
面向对象编程三大思想之一(封装、继承、多态)

(电视机的内部可以理解为class 零件可以理解为 内部function )

内容引用: link

关于继承和多态:

个人理解 继承 的概念,就像是电视 和 DVD ,各自都有遥控器,但用起来很不方便,于是你把两个遥控器拆掉,自己做了一个万能遥控器,于是这个新遥控器就可以说是继承了电视 ( class TV ) 和DVD ( class DVD ) (组合..)

如上图所示,因为继承的范围包含了很多的概念,本人肤浅的理解如此,希望大家一起讨论剩余的概念分支:

继承,泛化和聚合, 多态,覆盖和重载, 如果概念过泛,请至少讲明白 接口 和 虚函数 以及 虚类 ...

希望一次性的能把这个概念讨论清楚,请拍砖....


...全文
1005 49 打赏 收藏 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
super_tiger 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yeqth125 的回复:]
继承 的概念,就像是电视 和 DVD ,各自都有遥控器,但用起来很不方便,于是你把两个遥控器拆掉,自己做了一个万能遥控器,于是这个新遥控器就可以说是继承了电视 ( class TV ) 和DVD ( class DVD ) (组合..)
你这样理解就不符合面向对象的设计原则了,应该说电视和DVD都要遥控器,但里面的按键不同,功能也有不同,但是它们都是用来遥控的,所以我抽象出一个抽象父类,抽象的功能就是遥控,而电视的遥控器和DVD的遥控器就是继承了抽象父类的遥控功能,至于怎么遥控由具体的子类来实现,这才是继承的思想,
[/Quote]


哥 理解的很透彻啊 折服



hudielei45 2009-08-03
  • 打赏
  • 举报
回复
天哪莪 莪茫嘫啦 莪剛學習幾天 來看看吧 毛嘟看吥懂嘀 還紦莪給弄暈ㄋ 現茬嘟暈呼呼嘀 莪認為繼承噈媞 孓笩繼承父輩啲 父輩繼承爺被嘀 父輩繼承啲爺偝 哃樣吔岢苡傳給孓笩 孓笩岢苡傳給孫 孫吔岢苡傳給丅①笩 孓笩傳給孫笩啲 吔哃樣岢苡傳給孫啲丅①笩 茤態噈媞 尛孩孓特別頑皮錒 烸天嘟囍歡茬亼麵偂做鬼臉 倂且苚吥哃啲表情 吥哃啲樣鉽 吥哃啲表情 帶仩這些嘟表達哃①嗰問題 這嗰尛孩活潑岢噯調皮 亱媞這嗰尛孩還媞彵自魢 衹媞頑皮啲塒葔表情 動莋 還絠語誩吥通罷ㄋ 吔吥能像LZ說啲那麼難錒 呼呼呼呼忽忽
sui_yuan_zhe 2009-07-05
  • 打赏
  • 举报
回复
纯粹飘过···
zhouzongjiu 2009-07-04
  • 打赏
  • 举报
回复
UP
dinghun8leech 2009-07-04
  • 打赏
  • 举报
回复
oo四大特性及其解释与比喻,相信不少新手都能倒背如流的应付面试官,
但是会背,与字面上的理解,这还不行,程序与设计上能否体现恐怕是很多脱离菜鸟级别的人都没能做好的。
一说oo能说的滔滔不绝,一设计起来,却是明显的oo皮,面向过程的馅儿(引用某位老兄的妙语)
最后的结论是,扎实、准确的oo概念的理解源自n个项目和n次实践的积累,当自己真正理解了,就会发现自己已经可以用自己的一套语言去叙述这些,而面试官一听,就很容易知道你的水平如何,这东西真不是容易装出来的。
yooyoozoo 2009-07-04
  • 打赏
  • 举报
回复
thinking in java
这才是正解!
xuronghua5000 2009-07-04
  • 打赏
  • 举报
回复
路过
a421047167 2009-07-04
  • 打赏
  • 举报
回复
yang677888 2009-07-04
  • 打赏
  • 举报
回复
还可以
chu2009 2009-07-04
  • 打赏
  • 举报
回复
好东东

保留先
dglife81 2009-07-04
  • 打赏
  • 举报
回复
mark and up
kongdong78 2009-07-04
  • 打赏
  • 举报
回复
面向对象的三大特性
封装就是将东西该保护的保护起来
继承与多态一个是一个的奠基石
彷徨的蜗牛 2009-07-04
  • 打赏
  • 举报
回复
up
wosuxiaoyan380 2009-07-04
  • 打赏
  • 举报
回复
怎么获得技术分?怎么获得技术分?
eugenepada 2009-07-04
  • 打赏
  • 举报
回复
MARK
huhuamicao 2009-07-04
  • 打赏
  • 举报
回复
我觉得在继承和多态中应该是重写相同的方法,而不是重载吧
WYhack 2009-07-04
  • 打赏
  • 举报
回复
思路清楚就好了,知识框架最要
chenhao_283 2009-07-04
  • 打赏
  • 举报
回复
THINKING IN JAVA是个好东西啊
robolwq 2009-07-04
  • 打赏
  • 举报
回复
我觉得楼主讲得比较粗。。。
Defonds 2009-07-04
  • 打赏
  • 举报
回复
good
mark
加载更多回复(26)

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧