继承特点:如果一个类A继承自类B,由类A创建出来的实例对象都能直接使用类B里定义的方法。

1. 子类的实现和父类的实现完全不一样,子类可以选择重写父类的方法。

2. 子类在父类的基础上又有更多的实现

  1. class Person(object):
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def sleep(self):
  6. print(self.name + '正在睡觉')
  7. class Student(Person):
  8. def __init__(self, name, age, school):
  9. # self.name = name
  10. # self.age = age
  11. # 子类在父类实现的基础上,又添加了自己新的功能
  12. # 调用父类方法的两种方式:
  13. # 1. 父类名.方法名(self,参数列表)
  14. # Person.__init__(self, name, age)
  15. # 2. 使用super直接调用父类的方法。推荐使用第二种方式
  16. super(Student, self).__init__(name, age)
  17. self.school = school
  18. def sleep(self):
  19. print(self.name + '正在课间休息时睡觉')
  20. def study(self):
  21. print(self.name + '正在学习')
  22. s = Student('jerry', 20, '春田花花幼稚园') # 调用了父类的 __init__ 方法
  23. s.sleep() # 调用了父类的 sleep方法
  24. print(Student.__mro__)
  25. # 1. 子类的实现和父类的实现完全不一样,子类可以选择重写父类的方法。
  26. # 2. 子类在父类的基础上又有更多的实现