天天看点

海绵宝宝帮你理解面向对象

浅谈面向对象

引例:制作一个蟹黄堡

面向过程:放一个面饼–>放一片生菜–>放一片牛肉–>放一片芝士–>放一个面饼

面向对象:海绵宝宝.做蟹黄堡();

引例:把大象放进冰箱里:

面向过程:打开冰箱门–>把大象放进去–>关闭冰箱门

面向对象:人.开门();

人.放入大象();

人.关门();

三大特征:封装、继承、多态

封装

封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

举例:有太多太多的人要吃蟹黄堡了,海绵宝宝忙不过来了,叫上了派大星帮忙。但是蟹老板不愿意告诉派大星蟹黄堡秘方。所以把蟹黄堡的秘方锁在了柜子里,只告诉派大星各种材料按什么顺序放置,便可制作一个蟹黄堡就可以了。

继承

继承,指可以让某个类型的对象获得另一个类型的对象的属性的方法。

举例:客人的需求越来越多,不止想吃蟹黄堡,还想要巨无霸蟹黄堡。此时,我们只需要在原来的蟹黄堡上加入两块肉饼即可。他具有蟹黄堡的属性,同时又具有自己特有的属性。

多态

多态,是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。

举例:

有一位顾客点了一个汉堡,只有当顾客选好汉堡种类,并且由章鱼哥传达给海绵宝宝的时,才能确定他具体的种类(蟹黄堡?巨无霸蟹黄堡?等等)

比如客人点的是蟹黄堡,

此时,(继承)海绵宝宝便会制作蟹黄堡。蟹黄堡,继承了汉堡的特点。

(重写)同时又重写了里面的一些汉堡的制作方法。(比如汉堡的制作方法就没有放一片芝士这个步骤,但是蟹黄堡需要)

(向上转型)当海绵宝宝使用 汉堡.制作();这个方法时,在制作时就会加上芝士。(也就是运用的蟹黄堡的制作方法)