※ 引述《goooeooo (ge)》之铭言:
: 以前面试遇到的问题
: 面试官问我什么是OOP
: 当时我觉得我回答不好
: 我想请问以下 这样解释可以吗?
: OOP观念 运用得宜可以将开发时间缩至最短 且观念正确下 也可让将来维护人员好维护
: 在大型系统下效果尤其显著
: 譬如今天开发仓库系统(我随意举例实际没有碰过这种系统)
: 由上往下分类 譬如有电子类、玩具类 此两类都还有很多继续向下的分类...
: 将电子类、玩具类 设计制作成大致物件
: 就是让此两类的向下分类几乎都是以此两物件做为变化继续修正或增加差异的部份来开发
: 譬如:电子类 再向下有手机类、电脑类
: 那将手机类、电脑类会共通的方法、逻辑再加上变量 制作成电子类物件
: 用电子类物件来小幅修正 完成向下的手机类跟电脑类两个小差异的部份就行了
: 照这样的规则一直向下 就是说 也将手机类跟电脑类 继续做成物件 供向下分类使用
: 也就是说你必须在规划开始时就已经思考好整个系统架构 会由几个最上层的物件开始向下
: 一直向下创造物件 让程式码进而达到最简化 但又能完成繁琐的任务
: 让开发人员可以快速开发 将来维护人员也可快速理解维护
: 所以最上层的物件设置规划非常重要 关系到整个系统开发的过程
: 这是我所理解的 请问这样可以解释OOP观念吗?
封装:定义私有的变量,加上公开的方法.变量只能透过公开的方法存取,
而不能被外界直接存取,做到变量私有及隐藏,正如封装之字面
意涵
继承:父类别的属性与方法让子类别再次使用,子类别可以复写父类别的
属性与方法,也可以自己定义新的属性与方法,做到类别再利用与扩充
正如继承的字面意涵,孩子可以对遗产做任何处置,也能自己打拼
多型:一种将类别丰富化,延伸出去的概念
例如一个类别被多个类别继承,或是一个接口被多个类别实作
这些去实作/继承别人的类别们,将他们所实作/继承的对象的
方法内容加以改写,日后,这些被继承/实作的对象,其同样的
方法,却可以拥有多彩多姿的表现方式