• python(继承)


    python中继承分为单继承或多继承。父类称为基类。

    子类继承了父类的所有属性。

    子类调用属性时,先在自己的属性中找,找不到才到父类属性中找。

    # -*- coding: utf-8 -*-
    class Dad:
        '这个是父类'
        money=100
        def __init__(self,name):
            print('父亲')
            self.name=name
        def Play(self):
            print('%s正在工作'%self.name)
    
    #单继承==>子类(父类)
    class Son(Dad):
        money = 2000
        
    print(Dad.money)
    print(Son.money)
    son_1=Son('小明')
    son_1.Play()
    print(son_1.name)
    

    子类和父类存在相同属性情况

    # -*- coding: utf-8 -*-
    class Dad:
        '这个是父类'
        money=100
        def __init__(self,name):
            print('父亲')
            self.name=name
        def Play(self):
            print('%s正在工作'%self.name)
    
    #单继承==>子类(父类)
    class Son(Dad):
        money = 2000
    
        def __init__(self,name,age):
            self.name=name
            self.age=age
        def Play(self):
            print('%s正在工作'%self.name)
    #子类和父类存在相同属性情况
    son_1=Son('小明',18)
    print(son_1.name)
    print(son_1.age)
    son_1.Play()
    

    什么时候用继承

    1.当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好

    2.当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好

    继承具有两种含义

    1.继承基类的方法,并且作出自己的改变或者扩展。(代码重用,意义不大)

    2.声明某个子类兼容与某基类,定义一个接口类,子类继承接口类,并且实现接口中定义的方法。(接口继承非常重要,父类规定好子类必须有的属性,子类具体实现)

    接口继承

    接口继承实质上是要求"做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外面调用者无需关心具体细节,可一视同仁处理实现了特定接口的所有对象",这在程序设计中叫做归一化。

    归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合。

    接口类继承实例

    # -*- coding: utf-8 -*-
    import abc
    class file(metaclass=abc.ABCMeta):
        @abc.abstractclassmethod
        def read(self):
            pass
    
        @abc.abstractclassmethod
        def write(self):
            pass
    
    class disk(file):
        def read(self):
            print('disk------>read')
        def write(self):
            print('disk------>write')
    
    class cd_rom(file):
        def read(self):
            print('d_rom------>read')
        def write(self):
            print('d_rom------>write')
    
    class mem(file):
        def read(self):
            print('mem------>read')
        def write(self):
            print('mem------>write')
    #如果基类中有一个没有实现基类的功能,会报错
    file1=disk()
    file1.read()
    file1.write()
    
  • 相关阅读:
    第24章、OnLongClickListener长按事件(从零开始学Android)
    第21章、OnItemSelectedListener事件(从零开始学Android)
    GIS开源软件大全
    How to configure SRTM elevations in WorldWind WMS
    [转]SRTM、ASTER GDEM等全球数字高程数据(DEM)下载方式简介
    SRTM数据介绍与说明
    [转]基于四叉树(QuadTree)的LOD地形实现
    [转]World Wind学习总结一
    [转]World Wind Java开发之四——搭建本地WMS服务器
    [转]World Wind Java开发之五——读取本地shp文件
  • 原文地址:https://www.cnblogs.com/2018-1025/p/12032218.html
Copyright © 2020-2023  润新知