GRASP原则六: 多态 Polymorphism How to handle alternative behaviors based on type 如何处理依据类型不同而有 不同行为的一类需求 ? 比如,开餐馆 苏州人喜欢甜.四川人喜欢麻.湖南人喜欢辣,咋处理 ?1.1 9条GRASP原则 Information Expert responsibilities should be assigned to objects that contain relevant info…
多态有什么用?马 克 - t o - w i n:https://blog.csdn.net/qq_44639795/article/details/103117332我给大家想了两个需求: 1)要求程序运行起来以后,如果用户输入自行车,就执行自行车的驾驶方法.如果用户输入小轿车,就执行小轿车的驾驶方法.这是就用到父类指针指向子类时的override.2)如果你有一千个子类.要求你依次执行这一千个子类当中的打印.你当然可以一个一个实例化子类后分别执行.马克-to-win:累也累死…
1.非virtual函数,调用规则取决于对象的显式类型.例如 A* a = new B(); a->display(); 调用的就是A类中定义的display().和对象本体是B无关系. 2.virtual函数,具体调用哪个版本,取决于虚函数表.例如 A* a = new B(); a->v_display(); 这个时候,对象a就需要查找自身的虚函数表,表中的v_display()是一个函数指针,可能指向不同类中的对应的v_display函数并调用对应版本的v_display.一般而言,如…