单继承:子类(派生类)只能有一个父类(基类)。支持单继承的语言有Java, Objective-C, PHP, C#等。
多继承:子类(派生类)可以有多个父类(基类)。支持多继承的语言有C++, Python等。
程序1:
#include <iostream>
using namespace std;
class A
{
public:
// 构造函数
A()
{
cout << "A's constructor method is invoked!" << endl;
}
};
class B
{
public:
// 构造函数
B()
{
cout << "B's constructor method is invoked!" << endl;
}
};
// C继承自A和B
class C : public A, public B
{
public:
// 构造函数
C()
{
cout << "C's constructor method is invoked!" << endl;
}
};
int main(int argc, char** argv)
{
C c;
return 0;
}
运行结果:
A's constructor method is invoked!
B's constructor method is invoked!
C's constructor method is invoked!
举现实中的一个例子:农民工,既是农民,又是工人。所以农民工继承自农民和工人。
程序2:
#include <iostream>
using namespace std;
class Farmer
{
public:
Farmer()
{
cout << "I am a farmer" << endl;
}
};
class Worker
{
public:
Worker()
{
cout << "I am a worker" << endl;
}
};
class MigrantWorker : public Farmer, public Worker
{
public:
MigrantWorker()
{
cout << "I am a migrant worker" << endl;
}
};
int main(int argc, char** argv)
{
MigrantWorker m;
return 0;
}
运行结果:
I am a farmer
I am a worker
I am a migrant worker