在 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
是基底類別。 Dog
和 Cat
是衍生類別。 makeSound
是一個虛函數,在衍生類別中重寫。 animal
是一個指向衍生類別物件的基底類別指標。 當呼叫animal->makeSound()
時,會呼叫衍生類別(Cat
)中重寫的makeSound
方法,輸出"Meow meow!"。
以上是C++ 中繼承如何實現多態性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!