MyException - 我的异常网
当前位置:我的异常网» J2SE » [讨论] 面向对象中的 封装、继承 、多态解决方法

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

www.MyException.Cn  网友分享于:2013-01-07  浏览:18次
[讨论] 面向对象中的 封装、继承 、多态
关于面向对象的三个基本特征: 封装、继承、多态


上面资料截取自 link

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

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

2. 该包的包,该漏的漏

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

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

内容引用: link 

关于继承和多态:

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

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

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

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




------解决方案--------------------
与其在这儿讨论这种见仁见智的抽象问题 还不如买个thinking in java多看一会儿
------解决方案--------------------
楼主的这文章是不是关于C++的啊.

------解决方案--------------------
许多东西不是java里的东西,参考可以。
------解决方案--------------------
继承 的概念,就像是电视 和 DVD ,各自都有遥控器,但用起来很不方便,于是你把两个遥控器拆掉,自己做了一个万能遥控器,于是这个新遥控器就可以说是继承了电视 ( class TV ) 和DVD ( class DVD ) (组合..)
你这样理解就不符合面向对象的设计原则了,应该说电视和DVD都要遥控器,但里面的按键不同,功能也有不同,但是它们都是用来遥控的,所以我抽象出一个抽象父类,抽象的功能就是遥控,而电视的遥控器和DVD的遥控器就是继承了抽象父类的遥控功能,至于怎么遥控由具体的子类来实现,这才是继承的思想,
------解决方案--------------------
继承,没必要想的那么复杂 就是 狗继承动物, 你继承人那么简单
------解决方案--------------------
至于多态,个人理解,在面向对象的设计原则上要求依赖于抽象,而多态就是抽象在面对不同的具体实现有不同的处理方式,比如定义了一个接口Comparable,拥有比较的功能,而自定义的Num类和XString类实现了这个接口,Num类实现的Comparable是比较数字类型的大小,而XString类实现Comparable是为了实现字符串的自然序大小的比较,而我们定义了
Comparable var = new Num();通过var调用比较方法是比较数字大小。
而var = new XString();通过var调用比较方法是比较字符串自然序大小。
对于var来说这就是多态,即通过同一个变量指向不同的实现类而实现了不同的功能。
------解决方案--------------------
面向对象的三大特性,这个在网上随便一搜就有就有好多结果吧。
------解决方案--------------------
额。C++的类关系,要比Java复杂的多。
个人觉得,只要把Java的类关系搞清楚,就足够用了。

C++,由于其类关系复杂,所以,设计的时候非常讲究要用模式,否则,程序员之间无法沟通。
但Java由于相对简单,并且,很多框架都开源,我们只实现其中的关键部分,所以,对模式的要求较弱。

赞同1楼的说,因为Thinking in Java(《Java编程思想》),
是你从面向过程(或者面向结构)编程 向 面向对象编程 的一个转折点。
有空的时候,看看前几章,或者只看每章的重点内容,就可以了。
------解决方案--------------------
你在网上搜索一下你提到的这些关键词,
就自然有答案
或者到wikipedia中去找

我觉的效果过会很好

你的封装的理解基本是正确的

继承和多态就不太对了

继承和多态是对现实中事物的映射

一个很好的例子就是 图形

假设图形中有一个方法使计算图形面的

不同形状有不同的面积计算方法, 所以你在图形shape这个类中定了一个虚的方法叫做 int caculateArea()

然后在三角形triangle,正方形square中 重载这个函数,当然对于不同形状的实现自然是不一样的

这样,如果你知道一个实例是图形,就可以调用caculateArea(),系统会根据这个图形实例到底是什么(正方形还是三角形)自己调用正确的caculateArea();
而不用你自己判断
------解决方案--------------------

这些特性在刚开始学的时候 有一些认识 知道是java的 或是面向对象的特性
感念性的了解 不用指望理解透 

只有在不断的写程序 开发项目 工作期间 才能深入的理解 吃透的
现在就是说的再好 也不一定能理解 
是需要在编写程序时亲身感受的

至少我认为是这样 我在刚学的时候 对这些特性就不是很明白 
但没影响我以后的学习 
慢慢的 代码敲多了 就有了一定的理解 其实都是一种思想

不这么做 完全可以 只是这样 优点多一些

慢慢体会喽 
呵呵


------解决方案--------------------
虚函数是C++中的概念,多态的发生会占用内存空间。所以为了提高效率,在C++中是不会自动发生多态的。如果想发生多态的行为,必须要指定,在函数(Java中称为方法)的前面必须加一个关键字virtual。
------解决方案--------------------
按照C++的理念来说:继承就是派生类复用基类的代码,避免在开发过程中过多的重写不必要的代码,增加开发成本与时间。

文章评论

程序员必看的十大电影
程序员必看的十大电影
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
一个程序员的时间管理
一个程序员的时间管理
每天工作4小时的程序员
每天工作4小时的程序员
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
代码女神横空出世
代码女神横空出世
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
总结2014中国互联网十大段子
总结2014中国互联网十大段子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
我的丈夫是个程序员
我的丈夫是个程序员
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
Java程序员必看电影
Java程序员必看电影
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
如何成为一名黑客
如何成为一名黑客
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员和编码员之间的区别
程序员和编码员之间的区别
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
我是如何打败拖延症的
我是如何打败拖延症的
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
 程序员的样子
程序员的样子
老程序员的下场
老程序员的下场
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员的鄙视链
程序员的鄙视链
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
漫画:程序员的工作
漫画:程序员的工作
编程语言是女人
编程语言是女人
10个调试和排错的小建议
10个调试和排错的小建议
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
旅行,写作,编程
旅行,写作,编程
那些争议最大的编程观点
那些争议最大的编程观点
程序员都该阅读的书
程序员都该阅读的书
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
为什么程序员都是夜猫子
为什么程序员都是夜猫子
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有