面向对象三大特性

三大特性

  1. 封装
    每个对象都包含它能进行的操作所需要的所有信息,这个特性称为封装
    提炼出类 就是在做封装
    封装的好处
  • 良好的封装能减少耦合
  • 类内部的实现可以自由修改
  • 类具有清晰的对外接口
  1. 继承
    对象的继承代表了一种"is-a"的关系,比如猫是哺乳动物,则猫继承了哺乳动物。反之,哺乳动物是猫就不成立了。
    子类可以理解为父类的特殊化,因为除了具备父类的特性外,还具备自己的个性。子类可以完全替换父类,反之则不成立。
    继承定义了类如何相互关联,共享特性
    继承的三个功能
  • 子类拥有父类非private的属性和功能(public protected etc. protected对子类公开,对其他类不公开)
  • 子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能
  • 子类可以用自己的方式实现父类的功能(方法重写)
    继承的好处
  • 使得子类公共的部分都放在了父类,使得代码得到了共享,避免了重复。
  • 使得修改或扩展继承而来的实现都较为容易
    继承的缺点
  • 父类变,则子类不得不变
  • 继承会破坏包装,父类的实现细节暴露给子类,增大了两个类之间的耦合
    使用继承的时机
    当两个类具备'is-a'的关系时,可以用继承
    当两个类是'has-a'的关系时,不适合继承。比如人有两只手 飞机场有飞机
  1. 多态(理解起来不够直观)
    多态表示不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行
    三个注意事项
  • 子类以父类的身份出现
  • 子类在工作时以自己的方式来实现
  • 子类以父类的身份出现时,子类特有的属性和方法不可以使用
    实现方式
  • 父类中的元素加virtual关键字
  • 子类用override关键字来覆盖父类方法
    具体实现多态的原理需以后熟悉
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容