面向对象中的三个基本特征:封装、继承和多态
1、封装,将现实中事物抽象成计算机领域中的对象,对象同时具有属性和行为,这就是封装。在封装中,数据隐藏,对象只对外提供与其他对象交互的接口,把自身的一些属性和实现细节对外是隐藏的。这样对象内部数据就有不同级别的保护,防止了程序中某些部分被意外改变或者错误引用了对象的私有属性。
2、继承,实现对象复用性的一个方法,可以在不重复编写以实现某个功能的前提下,对功能进行复用或者拓展。
继承的实现有两种:实现继承和接口继承
实现继承就是直接使用基于类的属性和方法,无需额外的编码
接口继承是仅仅使用属性和方法的名称,但是子类必须提供实现的能力
3、多态(可替代性),当前在继承关系时,允许把父类对象看成和它一个或者多个子类对象同等。因此可以根据当前赋给父对象的子对象中具体特性以不同的方式运行。
多态的前提条件:
1)要有继承关系
2)要有方法重写
3)要有父类引用指向子类对象
多态的优势:
1)提高了代码的维护性
2)提升了代码的扩展性
但是多态中不能使用子类的特有属性和方法
面向对象的原则
单一功能原则:一个类的功能要单一,不要保罗万象;
开放封闭原则:一个类在扩展性方面应是开放的,而在更改方面应是封闭的。
例如在一个类中,原本只是实现服务端的功能,现在需要添加客户端功能。则应该在不修改服务端功能的前提下增添实现客户端功能的代码。那么在最初功能设计时应该把所有功能分开,公共部分抽离出来。
替换原则:子类可以替换父类并出现在父类能够出现的地方
依赖原则:具体依赖抽象,上层依赖下层。
比如:在A手机和B手机中,B手机无卡,但是B手机要用A手机中的网络,这时候B手机就不能直接使用A手机的网络(具体类);B手机应当设置打开WiFi,连接A手机的网络(B定义抽象接口,由A来实现,B仅仅是使用该抽象接口)
接口分离原则:模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来
对象之间的关系
1、聚合关系,
2、组合关系,
3、继承关系。
4、依赖关系。