C & C++
我对C++的了解,仅限于C with Class。事实上,现代C++已经引入了非常多的新特性,这也正是这一系列笔记将要记录的。
面向对象编程(Object-Oriented Programming, OOP)有四个基本特性:
- 封装(Encapsulation):将数据(属性)和操作数据的方法(行为)绑定在一个单元(类)中,并对外隐藏内部实现细节。
- 隐藏复杂性:用户只需关注接口,无需了解内部逻辑。
- 保护数据:通过访问控制(如
private
/public
)防止外部直接修改敏感数据。
- 继承(Inheritance):允许一个类(子类)基于另一个类(父类)构建,继承其属性和方法,并可扩展或修改功能。
- 代码复用:避免重复编写公共代码。
- 层次化设计:通过抽象表达“is-a”关系(如
Dog
是Animal
)。
- 多态(Polymorphism):同一操作作用于不同对象时,可产生不同的行为。通常通过方法重写(Override)或接口实现。
- 接口统一:不同对象响应相同方法名,简化调用逻辑。
- 灵活扩展:新增子类无需修改现有代码。
- 抽象(Abstraction):提取核心特征并忽略非关键细节,通过抽象类或接口定义规范。
- 简化复杂度:聚焦高层次逻辑,隐藏具体实现。
- 强制约束:通过接口确保子类实现必要功能。