天天看点

面向对象编程三大特性------封装、继承、多态

封装:尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。

封装的好处:

(1):隐藏实现细节。好比你买了台电视机,你只需要怎么使用,并不用了解其实现原理。

(2):安全性。比如你在程序中私有化了age属性,并提供了对外的get和set方法,当外界 使用set方法为属性设值的时候 你可以在set方法里面做个if判断,把值设值在0-80岁,那样他就不能随意赋值了。

(3):增加代码的复用性。好比在工具类中封装的各种方法,你可以在任意地方重复调用,提高复用。

(4):模块化。有利于程序的协助分工,互不干扰,方便了模块之间的相互组合与分解,也有利于代码的调试和维护。比如人体由各个器官所组成,如果有个器官出现问题,你只要去对这个器官检查。

继承:继承是使用已存在的类的定义作为基础建立新类的技术。

继承的好处:

(1):容易在父类基础上构造,建立和扩充出新的类。

(2):能清晰体现相关类之间的层次结构关系,简化了人们对事物的认识和描述。

(3):复用父类的代码,能减少数据和代码的冗余度。

(4):大大增加了代码的维护性,改动父类,则所有子类的会自动改动,不用每个子类单独去改。

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。

对于面向对象而言,多态分为编译时多态和运行时多态。其中编辑时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。

多态的好处:

(1): 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性(减少重复代码,使代码变得简洁)。//继承

(2):派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用。

比如人这个类里有喂动物这个行为,一种动物写一个喂的方法,如果我有一万种动物,就要写一万个方法,突然又来了一种新的动物,又要单独为它写一个喂方法。如果使用多态,把喂特定某种动物变成喂动物,那么我们只需要写一个方法,我们就减少重复代码,使代码变得简洁。如果又有一种新的动物加进来,只需要实现它自己的类,不用为人这个类填方法,提高了扩展性。