我有这段代码,我想知道它是否有这三个概念:组合、继承和多态性。(如果它没有它们,我该如何在代码中使用它们(
寻求帮助。
这里有一个合成示例:圆由一个点和一个半径组成:
class Circle : public Shape
{
private:
Point center;
double radius;
这里有一个继承的例子:矩形是Shape:的类型
class Rectangle : public Shape
这里有一个多态性的例子:getArea()
方法被声明为基类(Shape
(中的虚拟方法,然后以不同的(适合子类的(方式为每个子类重新实现:
class Shape
{
public:
virtual double getArea() {};
[…]
class Circle : public Shape
{
double getArea() {
return radius * radius * PI;
}
[…]
class Rectangle : public Shape
{
double getArea() {
return getWidth() * getHeight();
}