C++类的继承关系举例分析
基本概念
在C++中,类的继承关系是通过派生类从一个或多个基类继承特性和行为来实现的。派生类继承了基类的成员变量和成员函数,并且可以在派生类中添加新的数据成员和成员函数。派生类可以继续被其他类继承,形成多层次的继承关系。基类也称为父类或超类,派生类也称为子类。
单一继承
单一继承是指派生类只能从一个基类继承,C++不支持多继承。下面以一个简单的例子来说明单一继承的概念。
class Fruit {
protected:
int weight;
public:
Fruit(int w) : weight(w) {}
virtual void eat() = 0; // 抽象方法,表示水果的吃的行为
};
class Apple : public Fruit {
public:
Apple(int w) : Fruit(w) {}
void eat() {
cout << "吃苹果,重量为:" << weight << "g" << endl;
}
};
class Orange : public Fruit {
public:
Orange(int w) : Fruit(w) {}
void eat() {
cout << "吃橙子,重量为:" << weight << "g" << endl;
}
};
在上面的例子中,Fruit类是基类,Apple类是派生类,Apple继承了Fruit的成员变量和虚函数eat()。同样,Orange类也是派生类,继承了Fruit的成员变量和eat()函数。通过单一继承,Apple类和Orange类都具备了Fruit类的特性和行为,同时又可以在派生类中进行定制。
多层次继承
多层次继承是指派生类从一个基类继承,并且派生类又被其他类继承的关系。下面以一个汽车类的继承关系来说明多层次继承的概念。
class Vehicle {
protected:
int speed;
public:
Vehicle(int s) : speed(s) {}
void run() {
cout << "车辆以" << speed << "km/h的速度行驶" << endl;
}
};
class Car : public Vehicle {
protected:
int seatNum;
public:
Car(int s, int n) : Vehicle(s), seatNum(n) {}
void drive() {
cout << "汽车有" << seatNum << "个座位" << endl;
}
};
class Sedan : public Car {
public:
Sedan(int s, int n) : Car(s, n) {}
void load() {
cout << "轿车可以装载4人" << endl;
}
};
在上面的例子中,Vehicle类是基类,Car类是Vehicle的派生类,Sedan类是Car类的派生类。Sedan类继承了Vehicle和Car的成员变量和成员函数。通过多层次继承,Sedan类既具备了Vehicle类的特性和行为,也具备了Car类的特性和行为。
猜您想看
-
PyCharm的实用技巧分享
一、快捷键Py...
2023年05月26日 -
如何基于Spark进行用户画像
1. 数据处理...
2023年07月22日 -
MSSQL Server on Linux预览版如何安装
1.下载安装程...
2023年05月26日 -
如何分析Spark中大数据产品的测试方法与实现
一、Spark...
2023年05月22日 -
HDFS中fs命令怎么用
1.什么是fs...
2023年05月26日 -
elasticsearch文档操作的方法有哪些
一、创建文档在...
2023年07月23日