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类的特性和行为。
猜您想看
-
如何在Windows上禁用启动项
如何在Wind...
2023年05月06日 -
在Win10上使用小工具
1. 你好,我...
2023年04月15日 -
为新的Win10电脑设置全局热键
如何为新的Wi...
2023年04月15日 -
基于Spark的公安大数据实时运维技术怎么使用
概述公安大数据...
2023年07月23日 -
Python中QPushButton如何使用tomcat Context 虚拟目录部署及各自定义404页面配置是什么
1. 什么是T...
2023年05月26日 -
调整Win10电源计划的设置
如何调整Win...
2023年04月15日