在实际工作中,为了提高效率,可以用继承来达到代码重用的目的。
class Fu:
代码块
class Zi(Fu):
代码块
如上,Zi类可继承Fu类的属性和方法。
下面通过具体的代码演示,代码中创建了一个Animal类,有姓名和年龄的属性,有吃东西的行为。
再创建一个Cat类,继承父类Animal后,也拥有了吃东西的行为。
# 定义父类
class Animal(object):
def __init__(self, name, age):
self.name = name
self.age = int(age)
def eat_food(self, food=''):
return self.name + ' eat ' + food
# 创建Cat类,继承Animal类
class Cat(Animal):
def __init__(self, name, age, color):
Animal.__init__(self, name, age)
self.color = color
def get_inform(self):
return self.name, self.age, self.color
# 创建一个实例
cat_miu = Cat('miu', 2, 'black')
# 继承了父类Animal的eat_food()方法
print(cat_miu.eat_food('fish'))
运行结果:
miu eat fish
子类也可以重写父类的方法,如下,重写eat_food()的方法:
# 定义父类
class Animal(object):
def __init__(self, name, age):
self.name = name
self.age = int(age)
def eat_food(self, food=''):
return self.name + ' eat ' + food
# 创建Cat类,继承Animal类
class Cat(Animal):
def __init__(self, name, age, color):
Animal.__init__(self, name, age)
self.color = color
def get_inform(self):
return self.name, self.age, self.color
# 重写了父类的eat_food()方法
def eat_food(self, food=''):
return food+'?'+'猫只喜欢吃鱼鱼'
# 创建一个实例
cat_miu = Cat('miu', 2, 'black')
# 调用父类Animal的eat_food()方法
print(cat_miu.eat_food('青菜'))
运行结果:
青菜?猫只喜欢吃鱼鱼