c++可以多继承,语法如下:
class <派生类名>:<继承方式1><基类名1>,<继承方式2><基类名2>,…
{
<派生类类体>
};
其中,继承方式是 public、protected 或 private 其中的一个
公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
私有继承(private):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。
多态:
C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。
class Shape{
public:
void area(){
printf("Shape area");
}
};
class Rectangle : public Shape{
public:
void area(){
printf("Rectangle area");
}
};
class Triangle : public Shape{
public:
void area(){
printf("Triangle area");
}
};
Shape *shape = new Triangle(); //基类指针指向子类
shape.area(); //输出"Shape area",没有产生多态,调用的是父类的方法
将Shape基类的方法改为:virtual void area()
调用shape.area()
输出:Triangle area //调用了子类的方法