前言
面向对象和面向过程
1. 面向过程
- 面向过程是以过程为中心的编程思想,是一种自顶而下的编程模式。典型的面向过程的编程语言就是C语言
- 概述:把问题分成一个一个步骤,每个步骤都用函数实现,依次调用
2. 面向对象
- 面向对象是一种把事务高度抽象化的编程思想。面向对象的编程语言主要有java、c++、python....
- 概述:把属性、行为等封装成对象,通过不同对象之间的调用,组合解决问题
面向对象的三大基本特征
1. 封装--将客观事物封装为抽象的类,而且将类的某些信息隐藏,不可让外界直接访问,只能通过方法调用
- 封装原则:隐藏信息--将成员变量私有化;方法调用--将方法设为public
- 好处:
- 通过方法来控制成员变量的操作,提高了代码的安全性;
- 把代码用方法进行封装,提高了代码的复用性;
2. 继承--使子类具有父类的属性和方法,并且可以在子类中重新定义,以及追加属性和方法
- 概念:被继承的类就叫父类;通过继承而创建的类就叫子类
- 继承方式:extends
- 好处:
- 提高了代码的复用性(多个类相同的成员可以放到同一个类中)
- 提高了代码的维护性(如果方法的代码需要修改,修改一处即可)
- 弊端:类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性
3. 多态--同一个对象,在不同时刻表现出来的不同形态
- 前提:
- 有继承或实现关系,即extends和implements
- 有方法重写
- 父类引用指向子类对象,如 Animal a = new Cat(),其中Animal是父类,Cat是子类
- 概述:
- Animal是父类,Cat、Dog是其子类
- 动物园里叫了一声"Animal过来",这时就会出现两种情况
- 一种是:猫过来了,即 Animal a = new Cat(),这就出现了多态
- 另一种是:狗过来了,即 Animal a = new Dog(),这就出现了多态
- 迷糊点:为什么要父类引用呢?为什么不直接创建一个子类对象?
- 我的理解是:程序开发的某些时候,我们不知道过来的是"猫"还是"狗",只知道过来的一定是个Animal,所以我们只能创建一个Animal对象来指向子类对象,也就是指向过来的"猫"或"狗",这就是为什么要父类引用了
- 实例:设计一个父类 FileRead 用来读取文件,ExcelRead 类和 WordRead 类继承 FileRead 类。在使用程序的时候,往往事先不知道我们要读入的是 Excel 还是 Word。所以我们向上转型用父类去接收,然后在父类中实现自动绑定,这样无论你传进来的是 Excel 还是 Word 就都能够完成文件读取。
- 好处:提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作
- 弊端:不能使用子类的特有成员
posted @
2021-03-28 14:29
金鱼同学
阅读(
72)
评论()
编辑
收藏
举报