继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
class Animal(object): #编写Animal类
def run(self):
print("Animal is running...")
class Dog(Animal): #Dog类继承Amimal类,没有run方法
pass
class Cat(Animal): #Cat类继承Animal类,有自己的run方法
def run(self):
print('Cat is running...')
pass
class Car(object): #Car类不继承,有自己的run方法
def run(self):
print('Car is running...')
class Stone(object): #Stone类不继承,也没有run方法
pass
def run_twice(animal):
animal.run()
animal.run()
run_twice(Animal())
输出:
Animal is running...
Animal is running...
run_twice(Dog())
输出:
Animal is running...
Animal is running...
run_twice(Cat())
输出:
Cat is running...
Cat is running...
run_twice(Car())
输出:
Car is running...
Car is running...
run_twice(Stone())
输出:
AttributeError: 'Stone' object has no attribute 'run'
还有一种写法,但父类和子类中定义功能函数名字需要不同。如下:
class Animal(object): #编写Animal类
def run(self):
print("Animal is running...")
class Cat(Animal): #Cat类继承Animal类,有自己的run方法
def runing(self):#改动:run改为runing
print('Cat is running...')
c=Cat() #定义一个c等于cat类
c.runing()#调用cat中runing的功能
输出:Cat is running...
c.run#调用Animal中run的功能
输出:Animal is running...