面向对象的核心概念
# 面向对象的核心概念
抽象、对象,类、封装、继承、多态、接口、抽象类;这些组成了面向对象的基础,如果谈面向对象的程序设计;就要先了解它们。
# 抽象、对象、类
抽象 是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程,是编程的基础。编程的本质就是对世界的近似描述,抽象的方向维度取决于实现的目的。
对象 抽取一个特定事物的属性和行为的结果,就是一个对象。它携带者一个特定事物的特征抽象。
类 抽取一类事物的属性和行为的结果,就是一个类。它携带者这类事物的特征,对类特化(给具体值)就是形成一个对象。
# 封装、继承、多态
封装 将抽象出的数据、行为进行有机结合;隐藏细节,指对外提供特定功能的接口;封装可以分级向外提供接口:public、protected、private。
继承 描述父子类的关系,子类继承于父类;子类就是父类的一种特例,子类拥有父类的所有信息。继承的方式一般有:public、protected、private。
多态指为不同数据类型的实体提供统一接口,并表现出不同的行为。
可以分为:
变量多态:基础类型变量可以被赋值基础类型对象,也可以被赋值派生类型对象。
函数多态:给相同函数调用(函数名和实参数表),传递同一个对象,可以有不同的行为。行为有接受对象类型决定。
也可以分为:
动态多态:在运行期决定的多态,主要为通过虚继承的方式,实现父类,不同子类的实现不同;即override。
静态多态:在编译期决定的多态
静态多态分为:非参数化多态和参数化多态
非参数化多态:函数重载,运算符重载;即overload。
参数化多态:把类型做出参数的多态,泛型编程。
# 抽象类和接口
抽象类是用来捕捉子类的通用特性的,不能被实例化,只能被用作子类的超类,是被用来创建继承层级里子类的模板;
接口则是抽象方法的集合,只是一种形式,接口自身不能做任何事情。
编辑 (opens new window)
上次更新: 2023/03/17, 15:46:47