博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 类的继承
阅读量:6864 次
发布时间:2019-06-26

本文共 1517 字,大约阅读时间需要 5 分钟。

类的继承

  • 相关概念:

    • 继承:父类的属性和方法子类可以直接拥有称为继承

    • 派生:子类在父类的基础上衍生出来的新的特征(属性和方法)

    • 总结:其实他们是一回事,只是描述问题的角度侧重点不同(继承侧重相同点,派生侧重不同点)

  • 相关语法:

     
    # class Animal(object):  # 当没有指定父类时,相当默认父类为object  class Animal:      def __init__(self, name):          self.name = name​      def eat(self):          print('小动物喜欢一天到晚吃个不停')            # 继承自Animalclass Dog(Animal):    pass​d = Dog('旺财')# 直接拥有父类的方法d.eat()# 直接拥有父类的属性print(d.name)

     

  • 派生:子类可以扩充属性和方法

     
    class Animal:    def run(self):        print('小动物喜欢到处乱跑')        class Rabbit(Animal):    # 添加方法    def eat(self):        print('爱吃萝卜和青菜')        xiaobai = Rabbit()xiaobai.run()xiaobai.eat()# 添加属性xiaobai.color = 'white'print(xiaobai.color)

     

  • 重写:

    • 父类的方法完全不合适,子类需要全部的覆盖

    • 父类的方法合适,但是需要完善

    • 示例:

     
    class Animal:      def run(self):          print('小动物喜欢到处乱跑')​      def eat(self):          print('小动物也是一天三顿')            class Cat(Animal):    # 当父类的方法完全不合适时,可以覆盖重写    def run(self):        print('俺走的是猫步')​    # 父类的方法合适,但是子类需要添加内容完善功能    def eat(self):        # 调用父类方法,不建议使用        # Animal.eat(self)        # super(Cat, self).eat()        # 类名及self可以不传        super().eat()        print('不过俺喜欢吃鱼')​jiafei = Cat()jiafei.run()jiafei.eat()

     

  • 多继承

    • 概念:一个类可以有多个父类

    • 示例:

     
    class A:    def eat(self):        print('eat func of A')     class B:    def eat(self):        print('eat func of B')        # 多继承,多个父类使用逗号隔开class C(B, A):    def eat(self):        # 当多个父类拥有相同的方法时,会按照继承时的先后顺序进行选择        # super().eat()        # 如果非要使用后面的类的方法时,可以明确指定进行调用        A.eat(self)        c = C()c.eat()

转载于:https://www.cnblogs.com/kiki5881/p/8572680.html

你可能感兴趣的文章
SQL的不合理有效性
查看>>
IDC机房:运营商机房与第三方机房(昌平机房)优劣对比
查看>>
MYSQL-多表查询
查看>>
怎么快速把语音转成文字
查看>>
求数字组合数
查看>>
AI让交通管理省时、省心、省力
查看>>
快速提升UI设计感的7个版式小妙招
查看>>
蛋花花:互联网正在告别青春期
查看>>
搭建zabbix监控系统
查看>>
Docker 容器的网络连接
查看>>
正压防爆气体分析系统
查看>>
Angularjs 中select回显后重复选项的解决
查看>>
BA 的岗位要求3
查看>>
Java Web中的Filter和Interceptor的区别
查看>>
shell编程中for/while/util/case/select/break/continue
查看>>
局域网交换(交换机三大原理.基本配置)
查看>>
Spring --- SpEL
查看>>
JS Math的几个方法使用实例
查看>>
jmeter的两种参数化方法
查看>>
Windows8.1+Eclipse搭建Hadoop2.7.2本地模式开发环境
查看>>