Python:继承

继承

Python支持类的继承,同时也支持多继承,其派生类定义如下:

 
  1. class DerivedClass(BaseClass1, BaseClass2,..., BaseClassN):
  2. 类的属性
  3. 类的方法

Python

请注意基类的排列顺序,当子类调用自身没有定义的方法,也并没有指定具体的基类名称时,python会从左到右依次查找继承的基类中是否包含该方法,直到找到就停止,否则报错。
例如:

 
  1. #定义Animal类
  2. class Animal:
  3. def eat(self):
  4. print("animal is eatting")
  5. #定义People类
  6. class People:
  7. def eat(self):
  8. print("people is eatting")
  9. def speak(self):
  10. print("people is speaking")
  11. #定义Student类,继承People类和Animal类
  12. class Student(People,Animal):
  13. pass
  14. #定义Teacher类,继承Animal类和People类
  15. class Teacher(Animal,People):
  16. pass #表示待填充的方法体
  17.  
  18. #Student类的实例s
  19. #Student类没有定义构造方法,创建类的实例时调用默认的无参构造方法
  20. s = Student()
  21. s.eat()
  22. #Teacher类的实例t
  23. t = Teacher()
  24. t.speak()

Python

输出结果:

people is eatting
people is speaking

当Student类的实例s调用eat()方法时,因为Student类继承父类的顺序是(People,Animal),所以先找People类是否有eat()方法,有就调用People的eat()方法,打印出people is eatting
当Teacher类的实例t调用speak()方法时,Teacher类本身没有定义speak()方法,所以搜索其父类(Animal,People),第一个父类Animal没有搜索到speak()方法,继续搜索第二个父类People,能搜索到speak()方法,于是调用People的speak()方法,打印people is speaking

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值