Python 学习笔记 -- 继承与多态(入门级实例)
1 #继承 2 #假设有不同品种的鱼,它们的蛋白质含量都不同,那么我们吃掉这些鱼获得的效果也应该不同 3 #----------------------------------------------------------------------- 4 #实例一:主要演示简单的多态,简单的单继承 5 6 #所有鱼的基类 7 class Fish: 8 def __init__(self, calorie): 9 self.calorie = calorie 10 11 def get_calorie(self): 12 return self.calorie 13 14 15 #鲤鱼 16 class Carp(Fish): 17 def __init__(self): 18 Fish.__init__(self,10) 19 20 21 #三文鱼 22 class Salmon(Fish): 23 def __init__(self): 24 Fish.__init__(self,20) 25 26 #鱿鱼 27 class Sleeve(Fish): 28 def __init__(self): 29 Fish.__init__(self,15) 30 31 #爱吃鱼的猫 32 class Cat: 33 def eat_fish(self,fish): 34 print("真好吃,我获得了%d点卡路里!" % fish.get_calorie()) 35 36 #先实例化一个对象 37 cat = Cat() 38 cat.eat_fish(Carp()) #喂它一只鲤鱼 39 cat.eat_fish(Salmon()) #喂它一只三文鱼 40 cat.eat_fish(Sleeve()) #喂它一只鱿鱼 41 42 #而继承,其实就是将基类的属性或者方法赋予派生类 43 #这边是多态,可以对不同类的对象调用相同的方法,产生不同的结果 44 #这里值得注意的是,在Python中,变量是动态创建的,不像C++静态创建。 45 #所以需要注意,当重写父类的__init__方法是,需要调用父类类对象__init__方法 46 47 #----------------------------------------------------------------------- 48 #----------------------------------------------------------------------- 49 #实例二:主要是多重继承 50 class BaseOne: 51 def fun_one(self): 52 print("fun-one") 53 54 55 class BaseTwo: 56 def fun_two(self): 57 print("fun-two") 58 59 class DeriveClass(BaseOne,BaseTwo): 60 pass 61 62 63 test = DeriveClass() 64 test.fun_one() 65 test.fun_two() 66 #-----------------------------------------------------------------------