首页  >  文章  >  后端开发  >  C++ 中继承如何实现多态性?

C++ 中继承如何实现多态性?

WBOY
WBOY原创
2024-06-01 13:10:57236浏览

在 C++ 中,通过继承实现多态性,允许对象具有不同的行为,即便它们具有相同的公共基类。继承是一种创建新类的方法,其中新类(派生类)从现有类(基类)继承成员,并可以添加新成员。当使用派生类类型的指针或引用调用虚函数时,会调用派生类中重写的方法。

C++ 中继承如何实现多态性?

C++ 中继承如何实现多态性

什么是多态性?

多态性允许对象具有不同的行为,即便它们具有相同的公共基类。在 C++ 中,使用继承实现多态性。

继承

继承是创建类的新方法的方法,其中新类(派生类)从现有类(基类)继承。派生类继承基类的所有成员(数据和函数),还可以添加自己的新成员。

多态性是如何通过继承实现的?

在多态性中,派生类对象可以指向其基类类型的指针或引用。当使用派生类类型的指针或引用调用虚函数时,会调用派生类中重写的方法。

示例:

class Animal {
public:
    virtual void makeSound() {
        cout << "Animal makes a sound" << endl;
    }
};

class Dog : public Animal {
public:
    void makeSound() override {
        cout << "Woof woof!" << endl;
    }
};

class Cat : public Animal {
public:
    void makeSound() override {
        cout << "Meow meow!" << endl;
    }
};

int main() {
    Animal* animal = new Cat(); // 指向 Cat 对象的 Animal 指针
    animal->makeSound(); // 输出 "Meow meow!"
}

在上面示例中:

  • Animal 是基类。
  • DogCat 是派生类。
  • makeSound 是一个虚函数,在派生类中重写。
  • animal 是一个指向派生类对象的基类指针。

当调用 animal->makeSound() 时,会调用派生类(Cat)中重写的 makeSound 方法,输出 "Meow meow!"。

以上是C++ 中继承如何实现多态性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn