继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
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...
本文通过具体的Python代码示例,详细解释了继承的概念,如何使用继承来扩展现有类的功能,以及多态在不同类中实现同一方法的效果。同时,探讨了在父类和子类中定义同名方法和不同名方法的区别。
290





