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 #-----------------------------------------------------------------------

 

posted @ 2017-12-18 17:14  欧晨曦  阅读(307)  评论(0编辑  收藏  举报