编码举例说明抽象类,及其实现类
时间: 2024-08-12 16:10:17 浏览: 60
抽象类是一种特殊的类,它不能被实例化,主要用于提供一个接口和共享的功能,让其子类继承并实现具体的业务逻辑。抽象类通常包含一些抽象方法,这些方法没有具体实现,只有方法签名。实现类则需要继承抽象类,并提供这些抽象方法的具体实现。
下面是一个简单的例子来说明:
```cpp
// 抽象类 Animal
class Animal {
public:
// 抽象方法,无具体实现
virtual void makeSound() = 0; // 定义纯虚函数
// 共享的方法或属性
virtual ~Animal(); // 虚析构函数,确保子类正确析构
protected:
// 类的成员变量
int age;
};
// 实现类 Dog 继承自 Animal
class Dog : public Animal {
private:
std::string breed;
public:
// 为抽象方法提供实现
void makeSound() override {
std::cout << "Woof!" << std::endl;
}
// 构造函数
Dog(int a) : age(a) {
breed = "German Shepherd"; // 具体实现
}
// 特殊于 Dog 的方法
void bark() {
std::cout << "Barking, I'm a " << breed << "." << std::endl;
}
};
// 实现类 Cat 继承自 Animal
class Cat : public Animal {
private:
std::string color;
public:
// 为抽象方法提供实现
void makeSound() override {
std::cout << "Meow!" << std::endl;
}
// 构造函数
Cat(int a) : age(a) {
color = "Tabby"; // 具体实现
}
// 特殊于 Cat 的方法
void purr() {
std::cout << "Purring, I'm a " << color << "." << std::endl;
}
};