面向对象的三大特征是什么?
封装:将具有同意特征功能的方法包装在一起,对外只暴露一个接口。成为信息的隐藏
继承:从已有的类中派生新的类 新的类拥有父类的属性 方法 并可以扩展新的属性
多态:有了继承 才有多态的概念 同一个类型 在不同的情况下 有不同的表现形式
面向对象的基础是什么?
有抽象 才有继承 有继承 才有多态
抽象是对一组事物共同特征的汲取
如何理解这句话?
1、我们要注重多少人来干事,而不是干多少事。
2、我们要注重谁来干事,而不是怎么干事。
对于这两句话的理解 我们用一个打水的例子来进行描述
小明同学去打水 在这个案例中 我们注重的应该是小明同学 还是打水?
常规思维:将打水这个过程进行封装
面向对象思维:
首先:我们应该把所有可能的对象罗列
抽象:场地 打水人 打水工具 受水人 资源 等等
进一步抽象:打水人 受水人 抽象为 参与人
打水工具也可以再抽象
在整个抽象的过程中 我们要注重的是对象 而不是过程,因为我们最终要实现的是面向对象的开发 而不是面向过程的开发。
总结:
我们要从一个事件中抽象出来面向对象的元素,先思考(将对象罗列出来 ,进行上一层抽象) ,当我们将对象抽象出来 再利用设计模式中的工厂方法实现对对象的复用,而不是方法层面的复用,已达到真正的面向对象开发