python 类的继承

Posted 大蟒在线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 类的继承相关的知识,希望对你有一定的参考价值。

类的继承

  • 相关概念:

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

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

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

  • 相关语法:

    
    
    # class Animal(object):
      # 当没有指定父类时,相当默认父类为object
      class Animal:
          def __init__(self, name):
              self.name = name
    ?
          def eat(self):
              print(小动物喜欢一天到晚吃个不停)
                
    # 继承自Animal
    class 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()

以上是关于python 类的继承的主要内容,如果未能解决你的问题,请参考以下文章

java 代码片段

python类的继承

Python类的继承

Python类的继承

Python类的继承

Python类的继承