sv中类的封装继承多态
时间: 2023-08-04 13:03:02 浏览: 84
理解几个常用的方法-javascript中如何实现封装,继承和多态
在C++中,类的封装、继承和多态是面向对象编程的三个重要概念。
封装(Encapsulation)是指将数据和操作封装在一个类中,通过访问修饰符(public、private、protected)来控制对类成员的访问。封装可以隐藏类的内部实现细节,提供公共接口供外部使用,并保护数据的安全性。
继承(Inheritance)是指一个类可以从另一个类派生出来,继承了父类的属性和方法。派生类可以添加新的属性和方法,也可以重写父类的方法。通过继承,可以实现代码的重用和层次化设计。
多态(Polymorphism)是指同一操作作用于不同的对象上时,可以产生不同的行为。多态通过虚函数(virtual function)实现,允许子类重写父类的方法,并在运行时动态绑定。
下面是一个简单的示例代码:
```cpp
// 封装
class Shape {
public:
void draw() {
// 绘制形状
}
private:
int x;
int y;
};
// 继承
class Circle : public Shape {
public:
void draw() {
// 绘制圆形
}
};
// 多态
void drawShape(Shape* shape) {
shape->draw();
}
int main() {
Shape shape;
Circle circle;
drawShape(&shape); // 调用基类的draw方法
drawShape(&circle); // 调用派生类的draw方法
return 0;
}
```
在上面的示例中,`Shape` 类封装了绘制形状的操作,并通过 `draw` 方法对外提供了公共接口。`Circle` 类继承自 `Shape` 类,重写了 `draw` 方法以实现绘制圆形的操作。`drawShape` 函数接受一个 `Shape` 类型的指针,并调用其 `draw` 方法。在运行时,根据实际对象的类型确定调用的方法,实现了多态性。
阅读全文