面向对象

面向过程:

   把大象装冰箱步骤;   打开冰箱→把大象放到冰箱→关上冰箱

面向对象:

  冰箱对象:   开关门动作

  大象对象:   进入冰箱的动作

  执行对象: 负责操作冰箱和大象

三大特性:

  封装:

    1. 数据安全: 一个类就是一个封装, 一个方法就是一个封装; 在内部可以隐藏自己的实现; 只对外部公开需要公开的内容;

    2. 稳定:  只要保证接口不变, 内部修改, 不会影响外部调用

    3. 提高重用性: 

    4. 分工合作, 职责分明: 划分不同的模块, 外部公开统一的接口, 相互间进行调用;方便构建大型复杂的系统

  继承: 

    1. 去掉重复代码

    2. 可以实现多态: 基类可以代替任何子类实现;

  多态:

    1. 相同的操作, 不同的实现: 比如方法的重载, 接口+实现类, 抽象+实现类

    2. 抽象类和接口都是运行时多态

如何选择抽象类和接口:

  抽象类:  父类+约束; 可以完成通用实现; 单根性;  描述 is a

  接 口:  纯粹的约束; 必须下端自己实现;  描述 Can do

  //IBaseService--BaseService--UserService

抽象方法和虚方法:

  需方使用virtual标记, 带有默认实现;

  抽象方法使用abstract标记, 不允许带有任何实现;

  如果子类覆写的时候, 标记了sealed, 则接下来不可以继续覆写

原文地址:https://www.cnblogs.com/wxylog/p/9602434.html