一 继承
1 继承的基本概念
1 class 类名(父类1, 父类2, ...): 2 #类定义部分
2 继承与抽象(先抽象再继承)
3 继承与重用性
4 派生
1 class Bird: 2 #鸟有翅膀 3 def isWing(self): 4 print("鸟有翅膀") 5 #鸟会飞 6 def fly(self): 7 print("鸟会飞") 8 class Ostrich(Bird): 9 # 重写Bird类的fly()方法 10 def fly(self): 11 print("鸵鸟不会飞") 12 13 # 创建Ostrich对象 14 ostrich = Ostrich() 15 #调用 Ostrich 类中重写的 fly() 类方法 16 ostrich.fly()
1 # 创建Ostrich对象 2 ostrich = Ostrich() 3 #调用 Bird 类中的 fly() 方法 4 Bird.fly(ostrich)
5 关于python的多继承
1 People类 张三
6 继承的实现原理
1 class D: 2 3 def bar(self): 4 print ‘D.bar‘ 5 6 7 class C(D): 8 9 def bar(self): 10 print ‘C.bar‘ 11 12 13 class B(D): 14 15 def bar(self): 16 print ‘B.bar‘ 17 18 19 class A(B, C): 20 21 def bar(self): 22 print ‘A.bar‘ 23 24 a = A() 25 # 执行bar方法时 26 # 首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去D类中找,如果D类中么有,则继续去C类中找,如果还是未找到,则报错 27 # 所以,查找顺序:A --> B --> D --> C 28 # 在上述查找bar方法的过程中,一旦找到,则寻找过程立即中断,便不会再继续找了 29 a.bar() 30 31 经典类多继承 经典类多继承
1 class D(object): 2 3 def bar(self): 4 print ‘D.bar‘ 5 6 7 class C(D): 8 9 def bar(self): 10 print ‘C.bar‘ 11 12 13 class B(D): 14 15 def bar(self): 16 print ‘B.bar‘ 17 18 19 class A(B, C): 20 21 def bar(self): 22 print ‘A.bar‘ 23 24 a = A() 25 # 执行bar方法时 26 # 首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去C类中找,如果C类中么有,则继续去D类中找,如果还是未找到,则报错 27 # 所以,查找顺序:A --> B --> C --> D 28 # 在上述查找bar方法的过程中,一旦找到,则寻找过程立即中断,便不会再继续找了 29 a.bar() 30 31 新式类多继承 新式类多继承
首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去C类中找,如果C类中么有,则继续去D类中找,如果还是未找到,则报错
7 子类中调用父类的方法
1 super(Class, obj).__init__(self,...)
1 super().__init__(self,...)
1 #_*_coding:utf-8_*_ 2 __author__ = ‘Linhaifeng‘ 3 4 class Vehicle: #定义交通工具类 5 Country=‘China‘ 6 def __init__(self,name,speed,load,power): 7 self.name=name 8 self.speed=speed 9 self.load=load 10 self.power=power 11 12 def run(self): 13 print(‘开动啦...‘) 14 15 class Subway(Vehicle): #地铁 16 def __init__(self,name,speed,load,power,line): 17 Vehicle.__init__(self,name,speed,load,power) 18 self.line=line 19 20 def run(self): 21 print(‘地铁%s号线欢迎您‘ %self.line) 22 Vehicle.run(self) 23 24 line13=Subway(‘中国地铁‘,‘180m/s‘,‘1000人/箱‘,‘电‘,13) 25 line13.run()
1 class Vehicle: #定义交通工具类 2 Country=‘China‘ 3 def __init__(self,name,speed,load,power): 4 self.name=name 5 self.speed=speed 6 self.load=load 7 self.power=power 8 9 def run(self): 10 print(‘开动啦...‘) 11 12 class Subway(Vehicle): #地铁 13 def __init__(self,name,speed,load,power,line): 14 #super(Subway,self) 就相当于实例本身 在python3中super()等同于super(Subway,self) 15 super().__init__(name,speed,load,power) 16 self.line=line 17 18 def run(self): 19 print(‘地铁%s号线欢迎您‘ %self.line) 20 super(Subway,self).run() 21 22 class Mobike(Vehicle):#摩拜单车 23 pass 24 25 line13=Subway(‘中国地铁‘,‘180m/s‘,‘1000人/箱‘,‘电‘,13) 26 line13.run()
二 课后作业
原文:https://www.cnblogs.com/luoxun/p/13509335.html