继承是面向对象编程中的一个核心概念,它允许我们创建一个类,继承另一个类的属性和方法。在C++中,继承可以帮助我们实现代码复用,并且可以创建具有相似属性和行为的类。
什么是继承?
继承允许一个类(称为子类)继承另一个类(称为父类)的属性和方法。通过继承,子类可以继承父类的方法,同时还可以添加自己特有的方法。
继承的类型
在C++中,主要有两种类型的继承:
- 公有继承(Public)
- 保护继承(Protected)
- 私有继承(Private)
公有继承
在公有继承中,父类的公有成员在子类中仍然是公有的,保护成员仍然是保护的,私有成员则对子类不可见。
保护继承
在保护继承中,父类的公有成员和保护成员在子类中变为保护的,私有成员则不可见。
私有继承
在私有继承中,父类的公有成员和保护成员在子类中变为私有的,私有成员仍然不可见。
如何实现继承?
在C++中,使用 :
操作符来指定继承类型。以下是一个简单的继承示例:
// 父类
class Animal {
public:
void makeSound() {
cout << "Some sound" << endl;
}
};
// 子类
class Dog : public Animal {
public:
void bark() {
cout << "Woof!" << endl;
}
};
在上面的例子中,Dog
类继承自 Animal
类。
继承与多态
继承和多态是面向对象编程的基石。通过继承,我们可以创建具有相似行为的不同类,而这些类可以以统一的方式被使用。这就是多态。
例如,如果我们有一个 Animal
类,以及继承自它的 Dog
和 Cat
类,我们可以这样使用多态:
Animal *animals[2];
animals[0] = new Dog();
animals[1] = new Cat();
for (int i = 0; i < 2; ++i) {
animals[i]->makeSound();
}
在这个例子中,我们创建了一个 Animal
类型的数组,并分别初始化为 Dog
和 Cat
类型的对象。尽管它们在内存中是不同的类型,但我们通过 Animal
类型的引用来调用它们的 makeSound
方法。
总结
继承是C++中实现代码复用和多态的关键特性。通过继承,我们可以创建具有相似属性和行为的类,同时还可以添加自己特有的方法。