Python是一种纯粹的面向对象语言。面向对象编程中的四大特征分别是:抽象、封装、继承和多态。多态根据上下文,对象可以采用多种形式。程序将确定该对象每次执行所需的含义或用法,从而减少了重复代码。
我国有句俗语:“龙生九子,各有不同”。这就是多态。多态是同一类事物具有的多种形态。多态是面向对象编程的重要特点之一。
Python本身就是一种多态语言:
上述程序中,参数a和b可以接收不同的数据类型。当a和b同时是数字类型时,add()函数将进行加法运算;当a和b同时是字符串类型或列表类型时,add()函数将进行拼接运算。
下面用一个示例来介绍计算机编程语言中的多态。
上述程序中,定义了四个类,分别是Animal类、People类、Dog类和Pig类,其中People类、Dog类和Pig类都继承了Animal类。这就体现了同一类事物的多种形态。这四个类都有一个talk()方法。试着调用talk()方法,代码如下:
上述程序中,调用Func()函数为同一个操作,但调用的参数是不同的,即调用了不同的实例作为参数。由运行结果可知,有不同的类创建不同的实例,以不同的实例作为参数时,调用talk()得到的打印结果是不同的,这是因为每个实例具有不同的实现方式,这就是多态性的体现。
多态性是同一个操作因作用实例不同而表现出不同实现方式的特性。多态性增加了程序的灵活性,以不变应万变,无论实例千变万化,使用者都是以同一种形式去调用;多态性还增加了程序可扩展性,通过继承创建新的类,子类可以使用父类的方法,也可以使用自己重写的方法。