首頁  >  文章  >  後端開發  >  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