zoukankan      html  css  js  c++  java
  • OO 面向对象的三大特性

    面向对象的三大特性

    一.面向对象特性——封装:

    概念:把对象所能操作的信息进行封装;

    封装作用:

    1.减少代码之间的耦合;

    2.提供统一的访问接口,内部修改不影响外部的调用;(开放封闭原则)

    二.面向对象特性——继承:

    概念:类与类之间的关系,子类继承父类,也就继承了父类除构造函数和析构函数之外的所有成员;

    构造函数是否可以被继承:

     1.当写好一个类以后,默认会存在一个没有参数的构造函数(即便我们不写构造函数,也会存在这么一个无参的构造函数)
    2. 当手动添加一个构造函数以后,会将默认的无参数的构造函数覆盖掉。
    3.类的构造函数是不能被继承的。只能在子类中去调用父类的构造函数。

    私有成员是否可以被继承:

    虽然子类继承父类后,在创建子类对象的时候,父类中的那些私有成员,也被分配了内存(子类中也有)。但是,继承只是面向对象中的一个概念,目的是为了子类使用(多态、代码重用),私有成员即便继承了,子类中也不能访问,所以在面向对象中,继承了但不能访问,没有意义。

    三.一.面向对象特性——多态:

    概念:同一操作作用于不同对象,可以有不同的解释,执行产生不同的结果;

    实现多态的方式:

    1.重载;

    2.重写;

    3.抽象方法;

    4.虚方法;

    5.隐藏;

    6.接口;

    多态的作用:

    把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

    里氏替换原则(Liskov Substitution Principle):派生类(子类)对象能够替换其基类(超类)对象被使用。通俗一点的理解就是“子类是父类”,举个例子,“男人是人,人不一定是男人”,当需要一个父类类型的对象的时候可以给一个子类类型的对象;当需要一个子类类型对象的时候给一个父类类型对象是不可以的!

    开放封闭原则(Open Closed Principle):封装变化、降低耦合,软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。因此,开放封闭原则主要体现在两个方面:对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。

  • 相关阅读:
    大话设计模式笔记(十三)の状态模式
    大话设计模式笔记(十二)の抽象工厂模式
    大话设计模式笔记(十一)の观察者模式
    大话设计模式笔记(十)の建造者模式
    大话设计模式笔记(九)の外观模式
    大话设计模式笔记(八)の模板方法模式
    大话设计模式笔记(七)の原型模式
    Vue(十二):自定义指令和函数渲染
    Vue(十一):组件边界
    Vue(十):混入、插件和过滤器
  • 原文地址:https://www.cnblogs.com/zlp520/p/7202617.html
Copyright © 2011-2022 走看看