• Python面向对象13.多继承


    一、引入

    应该听说过狮虎兽吧,它是狮子与老虎2种动物杂交出现的新物种

    再比如骡子是由驴与马2种动物杂交出现的新物种

    之所以用上述的2种杂交动物来开场,是因为要讲解的多继承其实就有点杂交的意思

    什么是多继承?

    如果一个类继承了多个父类,那么这就是多继承

    二、定义格式

    单继承时在类()中写1个父类的名字,那么多继承就需要在()中写多个父类的名字而且用英文逗号,进行分割

    class A:
        pass
    
    
    class B:
        pass
    
    
    class C(A, B):  # 继承了A、B类
        pass
    

      

     

    三、应用

    我们都知道今天的手机功能已经非常全面了,而且还在突风猛进的进化中,不仅有电话功能还有照相功能(参照照相机)、播放音乐(参照MP3)等,下面我们通过一步步的展示方式来揭晓多继承的真实作用价值所在

    首先我们定义一个普通的手机Telephone(即很久之前的功能机)

    class Telephone:
        def call(self):
            """打电话"""
            print("正在打电话...")
    
        def answer(self):
            """接电话"""
            print("正在接电话...")
    

      

     

    如果我们想要让手机拥有照相机的功能,此时就需要定义一个照相机类Camera

    class Camera:
        def take_photo(self):
            """拍照功能"""
            print("正在拍照...")
    

      

     

    然后让Telephone继承Camera

    class Camera:
        def take_photo(self):
            """拍照功能"""
            print("正在拍照...")
    
    
    class Telephone(Camera):
        def call(self):
            """打电话"""
            print("正在打电话...")
    
        def answer(self):
            """接电话"""
            print("正在接电话...")
    

      

     

    然后创建一个手机对象,此时就手机就继承了拍照功能

    class Camera:
        def take_photo(self):
            """拍照功能"""
            print("正在拍照...")
    
    
    class Telephone(Camera):
        def call(self):
            """打电话"""
            print("正在打电话...")
    
        def answer(self):
            """接电话"""
            print("正在接电话...")
    
    
    iiphone = Telephone()
    iiphone.call()
    iiphone.answer()
    iiphone.take_photo()
    

      

     

    运行之后的效果如下:

    正在打电话...
    正在接电话...
    正在拍照...
    

      

     

    如果想要让手机拥有听音乐的功能,我们可以定义一个MP3

    class MP3:
        def play_music(self):
            """播放音乐功能"""
            print("正在播放音乐...")
    

      

     

    最后让手机Telephone类继承MP3类

    class Camera:
        def take_photo(self):
            """拍照功能"""
            print("正在拍照...")
    
    
    class MP3:
        def play_music(self):
            """播放音乐功能"""
            print("正在播放音乐...")
    
    
    class Telephone(Camera, MP3):
        def call(self):
            """打电话"""
            print("正在打电话...")
    
        def answer(self):
            """接电话"""
            print("正在接电话...")
    
    
    iiphone = Telephone()
    iiphone.call()
    iiphone.answer()
    iiphone.take_photo()
    iiphone.play_music()
    

      

     

    带有音乐功能的手机就做好了,试试看

    正在打电话...
    正在接电话...
    正在拍照...
    正在播放音乐...
    

      

     
  • 相关阅读:
    点 多边形内外判断
    Winform获取js变量值
    软件和系统之间的微妙
    c# 读写json文件
    不规则图形重心
    c# winform 打开html界面(含引用外部文件js)
    c# GDI 画圆,可以调整大小等功能
    mysql 查找乱码数据
    类实例的拷贝
    Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
  • 原文地址:https://www.cnblogs.com/dong4716138/p/15747810.html
Copyright © 2020-2023  润新知