面向对象:
- 面向对象的分析(OOA,Object Oriented Analysis)
- 面向对象的设计(OOD,Object Oriented Design)
- 面向对象的编程实现(OOP,Object Oriented Programming)
面向对象三大特性:
封装:(可变对象的引用会破坏封装)
- 隐藏对象的属性和实现细节,仅对外公开接口(对象接口包括了公共的方法和初始化数据),防止数据的随意访问和修改;
继承:(实现继承与接口继承)
通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类;
实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
- 子类会继承父类的非private的属性和方法
- 可以在子类构造器中使用super关键字对父类private私有与域进行初始化
- 在类的继承层次中可以使用abstract定义抽象类作为派生其他类的基类
- 包含一个或者多个的抽象方法必须声明为抽象类
- 抽象类不可以被实例化
- 子类实现所有的抽象方法后不再是抽象类
- 抽象类的层次中可以使用多态既抽象类对象变量引用非抽象类子类实例
多态:(一个对象变量可以指向多种实际类型)
继承(已经继承父类了)、重写(继承已经默认重写了)、向上转型(子类的引用赋给父类)
面向对象五大原则:
- 单一职责原则(SRP):一个类应该仅有一个引起它变化的原因(最简单,最容易理解却最不容易做到的一个设计原则)
- 开放封闭原则(OCP):既开放又封闭,对扩展是开放的,对更改是封闭的!
- 里氏替换原则(LSP):子类可以替换父类并且出现在父类能够出现的任何地方
- 依赖倒置原则(DIP):传统的结构化编程中,最上层的模块通常都要依赖下面的子模块来实现,也称为高层依赖低层!让高层模块不要依赖低层模块,所以称之为依赖倒置原则!
- 接口隔离原则(ISP):这个原则的意思是:使用多个专门的接口比使用单个接口要好的多!