目录
一、继承特性
1.什么是继承?
继承就是让类和类之间产生父子关系,子类可以拥有父类的静态属性和方法。
继承就是可以获取另外一个类中的静态属性和普通方法。(并非所有成员)
在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类。
2.继承中子类和父类的概念
父类:用于被继承的类,称之为父类,也叫做基类,或者超类。
子类:继承其他类的类,称之为子类,也叫做派生类。
3.继承的作用
提高代码的重用率
练习1:创建Dog类和Cat类,分别设置name,age属性和定义eat()、sleep()方法。
并且Dog类在定义一个look_door()方法,Cat类定义climb_tree()方法。
dog = Dog('京东狗', 8)
dog.eat() # 吃饭
dog.sleep() # 睡觉
dog.look_door() # 看门狗
cat = Cat('天猫', 13)
cat.eat() # 吃饭
cat.sleep() # 睡觉
cat.climb_tree() # 爬树
注意:我们发现Cat了和Dog类中有大量的重复代码。
练习2:使用继承方式,实现Dog类和Cat类重复代码的重用。
class Animal(object):
type = '动物'
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print('吃饭')
def sleep(self):
print('睡觉')
class Dog(Animal):
def look_door(self):
print('看门狗')
class Cat(Animal):
def climb_tree(self):
print('爬树')
dog = Dog('京东狗', 8)
dog.eat() # 吃饭
dog.sleep() # 睡觉
dog.look_door() # 看门狗
print(dog.type) # 动物
cat = Cat('天猫', 13)
cat.eat() # 吃饭
cat.sleep() # 睡觉
cat.climb_tree() # 爬树
4. 查看继承的父类
格式:类名.__bases__
注意:
(1).python3中如果一个类没有继承任何类,默认继承object类。我们管这种类叫做新式类。
(2).object类,是python中的祖宗,所有的类都是从object类中继承下来的。
练习1:查看Cat类和Animal类继承的父类。
print(Dog.__bases__)
print(Animal.__bases__)
'''
(<class '__main__.Animal'>,)
(<class 'object'>,)
'''
5.方法的复写
子类中定义了和父类中相同的方法,我们叫做方法的复写(派生方法)。实例对象调用此方法 的时候就会调用自己类中的方法了。
练习1:定义一个Pig类继承上面的Animal类,重写父类中的eat方法
class Pig(Animal):
def eat(self):
print('吃猪饲料')
pig = Pig('荷兰猪', 3)
pig.eat() # 吃猪饲料
6.super()
子类和父类有相同的方法,如果子类想调用父类相同的的方法。可以使用super()方法。
在python3中ÿ