3.1.6 多态和动态绑定
多态(Polymorphism)有很多不同的描述方式,它是指同一个名称的操作或属性在多个不同类中出现,即多个类中可定义同一个操作名或者属性名,但实现不同。多态性就是指同一个消息被不同对象接收的时候可产生不同的执行结果。一个典型的例子是类中定义的属性和操作由子类继承后可以具有不同的数据类型和行为动作。例如,不同对象:圆形、三角形和矩形,在接收到“求面积”这个消息的时候,将执行不同的操作(算法)来求各自的图形面积。
多态性支持“同一接口,多种方法”的面向对象原则,使得高层代码可在低层多次复用,简化了软件的结构设计,增加了数据处理的灵活性,提高了软件的可复用性和可扩充性。(https://www.daowen.com)
动态绑定是一种多态性方法,又称为运行时绑定,它能允许程序推迟调用正确的方法,直到程序开始运行。程序在运行以前就已经确定好动作,但只有在运行时才能完成过程调用和目标代码的连接。即在程序运行过程中,接收消息的对象根据所属类,动态选定类中定义的操作,将请求操作与实现方法绑定。这个方法大大提高了程序设计的灵活性,提高了软件开发的效率。