写程序的道理就和做其他任何事是一样的, 比如炒个菜, 或者用洛阳铲来考古探方. 下面用其中任何一种事情来进行多态性的实现方法吧:
炒菜(实现多态):
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++
我现在是前敌总指挥员, 现命令各纵队司令发起最后总攻, 我虽然只发布了同一个命令, 就是进攻, 但是各个纵队和军团进行攻击的方式将各不相同, 这就是面向对象编程思想中的多态.