浅谈面向对象
引例:制作一个蟹黄堡
面向过程:放一个面饼–>放一片生菜–>放一片牛肉–>放一片芝士–>放一个面饼
面向对象:海绵宝宝.做蟹黄堡();
引例:把大象放进冰箱里:
面向过程:打开冰箱门–>把大象放进去–>关闭冰箱门
面向对象:人.开门();
人.放入大象();
人.关门();
三大特征:封装、继承、多态
封装
封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
举例:有太多太多的人要吃蟹黄堡了,海绵宝宝忙不过来了,叫上了派大星帮忙。但是蟹老板不愿意告诉派大星蟹黄堡秘方。所以把蟹黄堡的秘方锁在了柜子里,只告诉派大星各种材料按什么顺序放置,便可制作一个蟹黄堡就可以了。
继承
继承,指可以让某个类型的对象获得另一个类型的对象的属性的方法。
举例:客人的需求越来越多,不止想吃蟹黄堡,还想要巨无霸蟹黄堡。此时,我们只需要在原来的蟹黄堡上加入两块肉饼即可。他具有蟹黄堡的属性,同时又具有自己特有的属性。
多态
多态,是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。
举例:
有一位顾客点了一个汉堡,只有当顾客选好汉堡种类,并且由章鱼哥传达给海绵宝宝的时,才能确定他具体的种类(蟹黄堡?巨无霸蟹黄堡?等等)
比如客人点的是蟹黄堡,
此时,(继承)海绵宝宝便会制作蟹黄堡。蟹黄堡,继承了汉堡的特点。
(重写)同时又重写了里面的一些汉堡的制作方法。(比如汉堡的制作方法就没有放一片芝士这个步骤,但是蟹黄堡需要)
(向上转型)当海绵宝宝使用 汉堡.制作();这个方法时,在制作时就会加上芝士。(也就是运用的蟹黄堡的制作方法)