方法重写

方法重写
  方法重写(method overload):在类的继承关系中,派生类可以重写定义基类中的同名方法,从而拥有与基类不同的特性,这种情况称为方法重写。
  方法重写的语法非常简单,只需在基类中定义一个方法,此方法的名称与基类中的名称相同。基本格式如下:

    class 基类:
        def func_name(self):
            ...
            
    class 派生类(基类):
        def func_name(self):
            ...

  例如:

    class BaseClass:
        def func_name(self):
            print('This func_name in BaseClass.')
            
    class DeriveClass(BaseClass):
        def func_name(self):
            print('This func_name in DeriveClass.')

    在上面的例子中,BaseClass是基类,有方法func_name;DeriveClass是派生类,它重新定义了与基类同名的方法func_name。


  下面是方法重写的简单例子:

# -*- coding: utf-8 -*-

class Fruit():
    '''
    定义一个水果类Fruit
    '''
    def iam(self):
        print('I am a instance of Fruit.')
        
class Apple(Fruit):
    '''
    从Fruit派生出新类Apple
    '''
    def iam(self):
        print('I am a instance of Apple.')
        
fruit = Fruit()
fruit.iam()     # 此处调用的是类Fruit中定义的方法iam()
apple = Apple()
apple.iam()     # 因为类Apple中重写了方法iam,所以此处调用的是类Apple中定义的方法iam()