1 请谈谈面向对象的三大特征?

封装

隐藏对象的属性和实现细节,仅对外公开接口,控制程序中属性的读取和修改的访问级别;

封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据和操作数据的源代码有机结合,形成 "类",其中属性和函数都是类的成员。

封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。

继承

子类继承父类的特征和行为,使得子类具有父类的属性和方法;

子类的创建可以增加新数据、新功能,可以继承父类的全部功能,但是不能选择性的继承父类的部分功能;

继承是类与类之间的关系,不是对象与对象之间的关系。

多态

父类的引用指向子类对象;

允许不同子类的对象对同一消息作出不同的响应,即同一消息可以根据发送对象的不同而采用不同的行为方式 (发送消息就是函数调用) 。

多态的实现机制:动态绑定,指程序在运行期间会判断所引用对象的实际类型,根据其实际类型调用对应的方法。

多态的作用:消除类型之间的耦合关系。

多态的三个必要条件:

  1)有继承关系

  2)子类重写父类方法

  3)父类引用指向子类对象

多态的好处:

  1)可替换性:多态对不同的子类对象都能正常调用相关方法;

  2)可扩充性:多态对代码具有可扩充性,增加新的子类不影响已存在类的特性的运行和操作;

  3)接口性:多态是父类向子类提供一个公共接口,由子类完善或覆盖它而实现的;

  4)灵活性:应用中不同类型的子类通过重写公共方法,体现了灵活多样的操作;

  5)简化性:多态简化了代码编写和修改的过程。

原文地址:https://www.cnblogs.com/xilichenbokeyuan/p/14139347.html