自己做个菜? 面向对象的核心: 多态(动态绑定)
2014-10-01 16:01
183 查看
写程序的道理就和做其他任何事是一样的, 比如炒个菜, 或者用洛阳铲来考古探方. 下面用其中任何一种事情来进行多态性的实现方法吧:
炒菜(实现多态):
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++
我现在是前敌总指挥员, 现命令各纵队司令发起最后总攻, 我虽然只发布了同一个命令, 就是进攻, 但是各个纵队和军团进行攻击的方式将各不相同, 这就是面向对象编程思想中的多态.
炒菜(实现多态):
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++
我现在是前敌总指挥员, 现命令各纵队司令发起最后总攻, 我虽然只发布了同一个命令, 就是进攻, 但是各个纵队和军团进行攻击的方式将各不相同, 这就是面向对象编程思想中的多态.
相关文章推荐
- 动态绑定和多态——面向对象最核心的机制
- JAVA核心技术 第五章 继承 类、超类、子类 关键字this super 多态 动态绑定
- 6.7Python面向对象(7):多态和动态绑定
- 面向对象的核心:多态(Ploymorphism)
- python的面向对象的特性(继承、封装、多态)
- php面向对象之多态
- C#编程入门_面向对象之多态_11
- 面向对象三大特性(封装、继承和多态)
- java多态(动态绑定)
- JAVA菜鸟(二)面向对象之封装,继承,多态
- 自己用的C#基础学习笔记(二)——C#面向对象(2)
- 黑马程序员——面向对象(三)(多态和异常简述)
- Javascript面向对象的多态特性
- 面向对象,多态
- 多态和动态绑定
- 面向对象的第三个特征----多态I
- JavaScript 面向对象(封装、继承、多态)多种方式实现完全总结
- C# 面向对象(多态)
- 面向对象三大特性 -- 继承,封装,多态
- 面向对象—多态(3)