寫程序的道理就和做其他任何事是一樣的, 比如炒個菜, 或者用洛陽鏟來考古探方. 下面用其中任何一種事情來進行多態性的實現方法吧:
炒菜(實現多態):
1. 原料: 父類一個, 子類一個或多個
父類裏面準備虛函數一個或多個.
子類裏面準備相應的虛函數的實現一個或多個.
父類的指針一個.
子類對象一個或多個.
2. 烹調過程:
a. 先創建一個父類: class Person, 裏面聲明虛函數: virtual void study();
創建一個子類: class Student, 裏面聲明函數: void study();
創建一個子類: class Teacher, 聲明函數: void study();
實現函數:
Student::void study() { cout << " 學生們聽老師講課來學習c++ " << endl; };
Teacher::void study(){ cout << " 老師們翻閱學習資料學習c++ " << endl; };
b. main()函數中:
首先, 創建一個父類的指針:
Person *person;
其次, 創建子類的對象:
Student stu = new Student;
Teacher teac = new Teacher;
實現多態: 用父類指針指向各個子類, 然後通過這一個指針, 執行相同名字的不同實現:
person = &stu;
person->study(); // 學生們聽老師講課來學習c++
person = &teac;
person->study(); // 老師們翻閱學習資料學習c++
我現在是前敵總指揮員, 現命令各縱隊司令發起最後總攻, 我雖然只發布了同一個命令, 就是進攻, 但是各個縱隊和軍團進行攻擊的方式將各不相同, 這就是面向對象編程思想中的多態.