面向过程:
把大象装冰箱步骤; 打开冰箱→把大象放到冰箱→关上冰箱
面向对象:
冰箱对象: 开关门动作
大象对象: 进入冰箱的动作
执行对象: 负责操作冰箱和大象
三大特性:
封装:
1. 数据安全: 一个类就是一个封装, 一个方法就是一个封装; 在内部可以隐藏自己的实现; 只对外部公开需要公开的内容;
2. 稳定: 只要保证接口不变, 内部修改, 不会影响外部调用
3. 提高重用性:
4. 分工合作, 职责分明: 划分不同的模块, 外部公开统一的接口, 相互间进行调用;方便构建大型复杂的系统
继承:
1. 去掉重复代码
2. 可以实现多态: 基类可以代替任何子类实现;
多态:
1. 相同的操作, 不同的实现: 比如方法的重载, 接口+实现类, 抽象+实现类
2. 抽象类和接口都是运行时多态
如何选择抽象类和接口:
抽象类: 父类+约束; 可以完成通用实现; 单根性; 描述 is a
接 口: 纯粹的约束; 必须下端自己实现; 描述 Can do
//IBaseService--BaseService--UserService
抽象方法和虚方法:
需方使用virtual标记, 带有默认实现;
抽象方法使用abstract标记, 不允许带有任何实现;
如果子类覆写的时候, 标记了sealed, 则接下来不可以继续覆写