继承是面向对象编程中的一个核心概念,它允许我们创建一个新类(子类),这个新类可以继承已有类(父类)的属性和方法。通过继承,子类可以获得父类的属性和方法,并且可以在此基础上进行扩展或修改,从而提高代码的复用性、可维护性和可扩展性。
继承的主要特点包括:
代码重用:
子类可以继承父类的属性和方法,避免了重复编写相同的代码。
多态性:
子类可以覆盖或扩展父类的方法,实现不同的功能行为。
层次结构:
继承体现了面向对象程序设计的层次结构,有助于组织和管理代码。
接口实现:
子类可以通过继承多个父类来实现多重继承的效果,或者通过接口实现类似多重继承的功能。
在C++中,继承有三种主要类型:公有继承(public)、保护继承(protected)和私有继承(private)。不同的继承类型决定了父类成员在子类中的访问级别。
示例
假设我们有一个基类 `Person`,它包含属性和方法如 `name` 和 `age`。我们可以创建一个子类 `Student` 继承自 `Person`,并添加新的属性和方法,如 `studentID` 和 `major`。这样,`Student` 类就具有了 `Person` 类的所有特性,并且可以独立于 `Person` 类进行扩展和修改。
```cpp
include using namespace std; // 基类 class Person { public: string name; int age; Person(string n, int a) : name(n), age(a) {} }; // 子类 class Student : public Person { public: string studentID; string major; Student(string n, int a, string sid, string m) : Person(n, a), studentID(sid), major(m) {} void display() { cout << "Name: " << name << ", Age: " << age << ", Student ID: " << studentID << ", Major: " << major << endl; } }; int main() { Student s("Alice", 20, "S12345", "Computer Science"); s.display(); return 0; } ``` 在这个示例中,`Student` 类继承了 `Person` 类的属性和方法,并且添加了新的属性和方法 `studentID` 和 `major`。通过继承,我们避免了重复编写相同的代码,并且使得代码更加清晰和易于维护。