在C++里,通过继承和组合实现了代码复用,使得开发效率提高,并且能够通过代码看到事物的关系
组合比继承简单,所以在写代码时先考虑能否组合,再来考虑继承.
组合的特点
将其它类的对象作为当前类的成员使用
比如主机类,拥有 CPU/主板/内存/硬盘这4个对象成员,而这4个对象成员并没有继承主机类的特性和行为
继承的特点
新的类(子类)具有旧的类(父类)的属性和行为
旧的类被称为父类,也叫基类
新的类被称为子类,也叫派生类(一个派生类也可以继承多个基类)
子类可以添加新的属性和行为(成员变量和成员函数),也可以重写已有的属性和行为
一个子类只继承一个父类,便被称为单继承
一个子类若继承多个父类,便被称为多继承
子类其实就是一个特殊的父类,比如:苹果手机是手机,就是将苹果手机当做一个特殊的父类对待
子类对象可以初始化父类对象,也可以赋值给父类对象,比如:
class Parent
{
int mValue;
public:
Parent()
{
mValue=10;
}
int Value()
{
return mValue;
}
};
class Child : public Parent
{
public:
Child()
{
cout<<"I'm child"<<endl;
}
};
int main()
{
Child c;
cout<< c.Value() <<endl; //调用父类的成员函数
Parent p1 =c;
//通过子类初始化父类
Parent p2;
p2=c;
//通过子类复制给父类
}