面向对象编程的三大特性
封装
1、功能封装
2、形式封装,如装饰器,是一种语法糖,不改变函数功能
继承
子类继承父类变量、方法
多态
对封装和继承的一种高级抽象,体现的是一种普世价值——一个接口,多种实现。
动、静态编程语言中的实现
python
- 封装:内部成员使用_来约定,没有严格的控制访问
- 继承:支持多继承,
class Child(Parent1, Parent2) - 多态:只要对象有方法,就能调用,不要求显式地继承或接口声明(动态类型 + 鸭子类型)
Java
- 封装:关键字强制访问权限,
private、protected、public - 继承:单继承,
interface - 多态:继承多态+接口多态,需要
@Override注解
C++
- 封装:
private、protected、public,还有 friend 类 - 继承:支持多继承
- 多态:通过虚函数
virtual定义抽象类,进行动态绑定
Go
- 封装:通过包和首字母大小写(大写公开,小写私有)控制可见性
- 继承:没有类继承,只有结构体嵌入
- 多态:接口多态,结构体隐式实现接口(鸭子类型风格)