zoukankan      html  css  js  c++  java
  • 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 #-----------------------------------------------------------------------
  • 相关阅读:
    新年新气象~
    北京不下雪,自己来点雪花看看吧~(附效果图)
    没事写个游戏自己玩~
    原生js实现简单的焦点图效果
    php xdebug扩展无法进入断点问题
    (转)没有IE就没有伤害!浏览器兼容性问题解决方案汇总
    利用mvc filterconfig属性实现权限验证
    c# 替换所有中文、标点符号,全角转半角
    go web 第三天 学习笔记 --mysql
    go web 第二天 学习笔记之文件上传
  • 原文地址:https://www.cnblogs.com/jiangchenxi/p/8058604.html
Copyright © 2011-2022 走看看