C++的继承是面向对象编程中的重要特性之一,它允许一个类(派生类)继承另一个类(基类)的属性和方法。
一、主要特点
1. 代码复用:可以避免重复编写代码,派生类可以直接使用基类中已经实现的功能。
2. 层次结构:可以构建类的层次结构,便于对不同类型的对象进行统一管理和扩展。
3. 多态性基础:继承是实现多态性的重要手段之一,通过基类指针或引用调用派生类的函数。
二、举例说明
1,在这个例子中, Dog 类继承自 Animal 类。 Dog 类可以使用 Animal 类中的 eat 方法,同时又有自己特有的 bark 方法。这样就实现了代码的复用和扩展。
#include <iostream>
class Animal {
public:
void eat() {
std::cout << "Animal is eating." << std::endl;
}
};
class Dog : public Animal {
public:
void bark() {
std::cout << "Dog is barking." << std::endl;
}
};
int main() {
Dog dog;
dog.eat(); // 继承自 Animal 类的方法
dog.bark();
return 0;
}
运行结果:
2、如果有多个层次的继承,例如:
#include <iostream>
class Animal {
public:
void eat() {
std::cout << "Animal is eating." << std::endl;
}
};
class Mammal : public Animal {
public:
// 哺乳动物特有的属性和方法
void haveHair() {
std::cout << "Mammal have hair." << std::endl;
}
void suckle(){
std::cout << "Mammal is suckling its young." << std::endl;
}
};
class Cat : public Mammal {
public:
// 猫特有的属性和方法
void catchMouse(){
std::cout << "Cat is catching mouse." << std::endl;
}
};
int main() {
Cat cat;
cat.eat();
cat.haveHair();
cat.suckle();
cat.catchMouse();
return 0;
}
运行结果: