面向对象三大特性五大原则

面向对象三个特性和五大原则

三大特性

封装

  1. 定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。
  2. 途径:将数据与操作数据的源代码进行有机的结合,形成“类”。
  3. 原则
    1. 把尽可能多的东西藏起来.对外提供简捷的接口。
    2. 把所有的属性藏起来。

继承

  1. 定义:就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。如果某类B继承某类A,就把这个B称为A的子类或派生类,而把类A称为B的父类也可以称为A是B的超类或基类。
  2. 特点:在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。也可以为子类追加新的方法。
  3. 好处:使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
  4. 注意
    1. 在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。
    2. implements 关键字可以变相的使Java具有多继承的特性,使用范围为类实现接口的情况,可以同时实现多个接口。
    3. final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写。
  5. 同名方法调用:子类中通过this关键字调用子类中重写方法,通过super关键字调用父类中同名方法。如果父类的属性均为private修饰,则可以通过共有的getter、setter方法来调用。

多态

  1. 定义:指为不同数据类型的实体提供统一的接口。
  2. 多态存在的三个必要条件
    1. 继承:子类继承父类。
    2. 重写:子类重写父类中方法。
    3. 父类引用指向子类对象:Parent p = new Child();
  3. 使用注意:当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
  4. 类型判断:使用 instanceof 方法。
  5. 好处
    1. 消除类型之间的耦合关系。
    2. 提高了程序的拓展性。

五大原则

1.单一职责原则SRP

  1. 定义:一个类应该只有一个发生变化的原因。
  2. 好处:当需求变化时,只修改一个类,从而也就隔离了变化,可以减少类之间的耦合;如果一个类有多个不同职责,它们耦合在一起,当一个职责发生变化时,可能会影响到其他职责。

2.开放封闭原则OCP

核心思想:对扩展是开放的,而对修改是封闭的

​ 对扩展开放:有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。

​ 对修改封闭:类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。

3.里氏替换原则LSP

  1. 定义:所有引用基类的地方必须能透明地使用其子类的对象。
  2. 理解:只要有父类出现的地方,都可以用子类来替代。
  3. 约束条件
    1. 子类必须实现父类的抽象方法,不得重写父类的非抽象(已实现)方法。
    2. 子类中可以增加自己特有的方法。
    3. 子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
    4. 子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

4.依赖倒置原则DIP

  1. 含义
    1. 高层次的模块不应该依赖低层次的模块,两者都应该依赖其抽象。
    2. 抽象不应该依赖于具体,具体应该依赖于抽象。
  2. 基本条件
    1. 每个类尽量需要有抽象类或者接口
    2. 任何类都不应该从具体类派生
    3. 尽量不要复写抽象类的方法,类之间依赖的是抽象

5.接口分离原则ISP

  1. 定义:客户端不应该依赖它不需要的接口,类间的依赖关系应该建立在最小的接口上。
  2. 理解: 使用多个专门的接口比使用单一的总接口要好。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值