python类的继承和多态
在面向对象(OOP)程序设计中,当定义一个class的时候,可从某个现有的class继承 新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)
格式:
子类名(父类名):
pass
使用示例
class Animal(object):
def run(self):
print('Animal is running...')
class Dog(Animal):
pass
class Dog1(Animal):
def run(self):
print('Dog is running...')
def run_twice(animal):
animal.run()
animal.run()
dog = Dog()
dog.run() #输出:Animal is running...
dog1 = Dog1()
dog1.run() #输出:Dog is running...,执行子类自己的方法
run_twice(Animal())
#输出:Animal is running...
#输出:Animal is running...
run_twice(Dog1())
#输出:Dog is running...
#输出:Dog is running...
#新追加一个子类型Tortoise,然后调用run_twice函数,依然可以运行
class Tortoise(Animal):
def run(self):
print('Tortoise is running slowly...')
run_twice(Tortoise()) #调用run_twice函数,依然可以运行,确保传入的对象有run()方法即可
#输出:Tortoise is running slowly...
#输出:Tortoise is running slowly...