📅  最后修改于: 2023-12-03 14:39:38.696000             🧑  作者: Mango
继承是面向对象编程中非常重要的一个概念,即子类可以继承父类的属性和方法。在 C++ 中,继承分为三种类型:公有继承、私有继承和保护继承。三种继承方式的区别在于子类如何继承父类的成员、访问权限等。
// 父类 Animal
class Animal {
public:
void eat() {
cout << "Animal eat" << endl;
}
void run() {
cout << "Animal run" << endl;
}
int age;
};
// 子类 Cat 继承自 Animal
class Cat : public Animal {
public:
void climb() {
cout << "Cat climb" << endl;
}
int weight;
};
// 创建子类对象实例并调用方法
Cat cat;
cat.run(); // 继承自父类 Animal 的方法
cat.eat(); // 继承自父类 Animal 的方法
cat.climb(); // 子类 Cat 自己的方法
// 访问继承自父类的属性
cat.age = 2; // 继承自父类 Animal 的属性
// 访问子类自己的属性
cat.weight = 3; // 子类 Cat 自己的属性
上面的代码示例中,父类 Animal
声明了 eat()
和 run()
两个方法以及一个 age
属性,子类 Cat
继承了 Animal
类并增加了一个 climb()
方法和一个 weight
属性。在代码示例中,我们创建了子类 Cat
的对象实例 cat
,并通过 cat.run()
、cat.eat()
和 cat.climb()
分别调用了继承自父类和子类自己的方法。同时,我们也访问了继承自父类的 age
属性和子类自己的 weight
属性。
在 C++ 中,继承类型可以分为公有继承、私有继承和保护继承三种。
公有继承将父类成员的访问权限保持不变,子类可以访问父类公有成员和保护成员,但不能访问父类私有成员。
// 公有继承
class Child: public Parent {
};
私有继承将父类公有和保护成员都变成了私有成员,子类不能访问任何父类成员。
// 私有继承
class Child: private Parent {
};
保护继承将父类的公有成员变成了子类的保护成员,父类的保护成员和私有成员都变成了子类的私有成员。
// 保护继承
class Child: protected Parent {
};
继承是 C++ 中非常重要的面向对象编程概念,通过继承可以将已有的类进行扩展和重用。在 C++ 中,继承类型包括公有继承、私有继承和保护继承,以及三者之间的区别。开发者需要根据具体需求来选择不同的继承类型,以便实现最佳的面向对象设计。