基本特征
1. 封装
把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
2. 继承
可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
3. 多态
允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作
实现方式:
- 重载: 类中多个同名方法参数列表不同
- 重写(覆盖): 子类覆盖父类方法
设计原则
对接口编程而不是对实现编程。
优先使用对象组合而不是继承。
一、单一职责
就一个类而言,只有一个引起它变化的原因
二、开闭原则
一个软件实体,应该对拓展开放,对修改关闭。(只有因为错误而修改,否则需要拓展时,不应修改实体本身,而是用继承等方式去复用)
三、里氏替换原则
引用基类的地方必须能透明地使用其子类。
四、依赖倒置原则
高层模块不依赖于低层次模块的实现细节。(面向接口/抽象编程)
五、接口隔离原则
类间的依赖关系应该建立在最小接口上,不应依赖它不需要的接口
六、迪米特法则
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块独立。
七、组合/聚合复用原则
尽量使用组合和聚合少使用继承的关系来达到复用的原则.