美文网首页
面向对象三大特征和五大原则

面向对象三大特征和五大原则

作者: RoberLin | 来源:发表于2018-08-30 13:34 被阅读235次

    一、三大基本特征

    面向对象的三大基本特征为:封装、继承、多态。

    1、封装

    把客观事物抽象出来,封装成类,并且类可以把自己的属性和方法只让可信的类或者对象操作,封装可以让多个事物之前比较清晰和明了。

    2、继承

    继承是面向对象编程主要的功能,它可以让其他类可以使用该类的指定的方法和属性,而不用重新编写相应的代码,且可以在该类的基础下进行功能的扩展。继承也是最好理解的特征。

    一般实现继承可通过继承父类达到实现继承,这样可不用重新编写相应代码便可以使用相应功;也可通过接口来达到接口继承,这样需要子类实现具体代码,只使用父类的属性和方法的名称。

    使用继承的前提是父类和子类具有相同的特征,因为子类源于父类,所以子类是父类的一种。

    3、多态

    一个接口,多种实现。将父对象设置成一个或多个其子对象的方式称为多态,也就是说。允许将子类类型的指针赋值给父类类型的指针。

    多态有多种形式:

    重写:子类重写父类相同的方法,以实现子类的个性化需要

    重载:同名函数多种入参组合

    父类引用指向子类对象:子类源于父类,是父类的一种,可将子类对象赋值给父类对象,例如List a = new ArrayList();此种方式的好处是依赖抽象而不是依赖具体实现,有更好的扩展性。

    二、五大涉及原则

    1、单一职责原则

    对一个类而言,应该仅有一个引起它改变的原因。每一个类,只负责干一件事。如果一个类承担的职责过多,这些职责就会相互依赖,一个职责的变化可能会影响另一个职责的执行。应该合理的进行类的职责分配。避免在改动一种职责时,影响其他职责的执行。

    2、开放封闭原则

    代码的实现应该是可以扩展的,但是不可修改。良好的软件设计必须考虑改变,为了减少在改变代码时对现有代码的影响,应该提高代码的扩展性,而对修改关闭。将可能变化的模块抽象出来,然后提高扩展性。

    3、里氏替换原则

    子类应当可以替换父类并出现在父类能够出现的任何地方。本原则和开放封闭原则关系密切,正是子类型的可替换性,才使得使用基类型模块无需修改就可扩充。

    4、依赖倒置原则

    抽象不应依赖于细节,细节应该依赖于抽象。也就是说,在将事物抽象时,不能让这个已被抽象的事物依赖具体的事物,就好比接口的定义中不能有实现,因为接口就是抽象的,在使用抽象对象的具体实现时,不能直接依赖具体实现,而应该还是依赖抽象,例如List list = new ArrayList()。

    5、接口隔离原则

    多个专用接口优于一个单一的通用接口。一个接口应该保证,实现该接口的实例对象可以只呈现为单一的角色,当某个客户程序的要求发生变化,而迫使接口发生改变时,影响到其他客户程序的可能性更小。也便是,抽象事物,被抽象的事物间通过依赖抽象的方式组合起来,而不是通过具体的类强耦合起来。

    以上原则都是为了一个目的——高内聚,低耦合。

    相关文章

      网友评论

          本文标题:面向对象三大特征和五大原则

          本文链接:https://www.haomeiwen.com/subject/iaovmftx.html