子类和派生类是什么关系
时间: 2023-12-24 08:14:47 浏览: 221
C++派生类与基类的转换规则
5星 · 资源好评率100%
子类和派生类是面向对象编程中的两个概念,它们之间有继承关系。
当一个类从另一个类继承时,我们称前者为后者的子类或派生类,后者为前者的父类或基类。子类继承了父类的所有成员变量和成员函数,并可以在此基础上新增成员变量和成员函数,或者重写父类的成员函数。
子类和派生类的关系可以用“is-a”(是一个)来描述。例如,狗是一种动物,所以可以定义一个Dog子类来继承Animal父类。在这个例子中,Dog可以被认为是Animal的一种特化。子类继承了父类的所有属性,因此可以使用父类的方法和属性,并且可以扩展父类的功能。
以下是一个简单的C++示例,演示子类和派生类的概念:
```c++
#include <iostream>
using namespace std;
class Animal {
public:
void eat() {
cout << "Animal is eating..." << endl;
}
};
class Dog : public Animal {
public:
void bark() {
cout << "Dog is barking..." << endl;
}
};
int main() {
Dog dog;
dog.eat(); // 子类可以使用父类的方法
dog.bark(); // 子类也可以定义自己的方法
return 0;
}
```
在上面的示例中,我们定义了一个名为 `Animal` 的父类,并在其中声明了一个 `eat()` 方法。然后,我们定义了一个名为 `Dog` 的子类,并在其中声明了一个 `bark()` 方法。`Dog` 类通过 `public` 关键字继承了 `Animal` 类,从而可以使用 `eat()` 方法。
在 `main()` 函数中,我们创建了一个 `Dog` 对象 `dog`,并调用了它的 `eat()` 和 `bark()` 方法。我们可以看到,`Dog` 类可以使用 `Animal` 类的 `eat()` 方法,同时也可以定义自己的 `bark()` 方法,这就是继承的好处。
阅读全文