黑马程序员技术交流社区

标题: 关于面向对象及多态概念的理解 [打印本页]

作者: showdy    时间: 2015-4-12 20:37
标题: 关于面向对象及多态概念的理解
  面向对象的理解
1.你是怎样理解面向对象的?
面向对象是基于面向过程的一种思想;面向过程是以函数为基础,关注实现过程。而面向对象是以对象为基础,关注实现对象,结果。面向对象的思想特点:a:将复杂的事情简单化。b:面向对象将以前的过程中的执行者,变成了指挥者。c:面向对象这种思想是符合现在人们思考习惯的一种思想。
(接下来举例说明怎样理解面向对象:假如举娶老婆的例子)
假如你是个男性,你需要自己打扫卫生,做饭,买衣服,包括生孩子(假如你可以);但是你很懒都不想做,这时你想到,我是不是可以找女人来帮我做这些事呢?于是,你出于此目的,找了个“能者多劳”的老婆,这时候你好像变成了皇帝一样,说老婆,你去帮我把衣服洗了,于是老婆去洗衣服了;你又说老婆,你把去卫生打扫下,你去买点菜做饭,你老婆很贤惠,然后默默无闻地去打扫卫生,买菜做饭,包括生孩子。此时,你就完全变成了一个指挥者,而你的老婆就是你的对象,她变成执行者,至于她是怎么打扫的,怎么做饭买菜的,你都不用知道。(PS.当然这完全属于男人的理性状态,假如你挣2000,你老婆挣2w,那可能你们的位置得颠倒下了)。

2.你是怎么样理解面向对象之多态的呢?
(首先说下多态的概念)
  多态就是在基类这种定义的方法和属性被子类继承后,具有不同的数据类型或者表现出不同的行为。
(还是举例:这里我就以黑马毕老师为例哈;举例时一定要注意多态的三个前提:
1.有继承关系;2有方法重写;3.有父类引用指向子类对象)

假如,毕老师年纪30,能讲java,能玩league of legends(LOL)
  毕姥爷(毕老师的父亲)年纪60,能讲授太极。
有一日,有某个太极协会详情毕姥爷去讲授太极要领,但是毕姥爷不在,毕老师在家,一看报酬还挺高,于是就乔装打扮,穿上毕姥爷的衣服,贴上胡子,就去了。(也就是向上转型)
毕姥爷 bi= new 毕老师();
这时毕老师过去了,人家就以为毕姥爷过来,因为年纪像是60(外在属性没有改变,也就是bi.年纪=60);
然后,毕老师(乔装后)就去给协会会员讲课了,因为毕老师根本不会讲太极,硬要讲太极立马露馅,所以他只能讲java(内在功能不会改变,也就是bi.讲课=java)
演讲结束后,毕老师卸妆,脱掉毕姥爷的衣服,换上自己的衣服(向下转型)
毕老师 Bi= (毕老师)bi;
这时,他走在大街上,别人一眼就能看出他年纪(也就是Bi.年纪=30)
来黑马上课,肯定是讲java(Bi.讲课=java)
出去打游戏,肯定就是LOL了(自己特有的, Bi.游戏=LOL)
  

作者: qq250144825    时间: 2015-4-12 21:11
哎呀呀,好具体
作者: 刘潘敏    时间: 2015-4-12 21:33
谢谢共享,加油
作者: 无梦不远行    时间: 2015-4-12 21:42
毕老师打你没有
作者: xxingfang    时间: 2015-4-12 21:52
太形象了,呵呵。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2