c++

c++方法的覆盖怎样做

小樊
81
2024-12-04 01:46:40
栏目: 编程语言

在C++中,方法覆盖(也称为重写或Override)是指子类提供特定于其自身实现的基类方法。为了实现方法覆盖,您需要遵循以下步骤:

  1. 在子类中声明与基类方法具有相同名称、返回类型和参数列表的方法。
  2. 确保子类方法的访问权限不低于基类方法的访问权限(例如,如果基类方法是public,那么子类方法也应该是public)。
  3. 在子类方法中实现特定于子类的行为。

以下是一个简单的示例,演示了如何在C++中实现方法覆盖:

#include <iostream>

// 基类
class Animal {
public:
    // 基类的方法
    virtual void makeSound() {
        std::cout << "The animal makes a generic sound." << std::endl;
    }
};

// 子类
class Dog : public Animal {
public:
    // 子类覆盖基类的方法
    void makeSound() override {
        std::cout << "The dog barks." << std::endl;
    }
};

int main() {
    Animal myAnimal;
    Dog myDog;

    // 调用基类方法
    myAnimal.makeSound(); // 输出:The animal makes a generic sound.

    // 调用子类覆盖的方法
    myDog.makeSound(); // 输出:The dog barks.

    return 0;
}

在这个例子中,我们有一个名为Animal的基类,其中包含一个名为makeSound的方法。然后,我们创建了一个名为Dog的子类,该子类继承自Animal并覆盖了makeSound方法。当我们调用myDog.makeSound()时,它将输出"The dog barks.",这是子类提供的特定实现。

0
看了该问题的人还看了