继承类构造方法使用

Posted xiaozeng6

tags:

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

1,调用未绑定的超类构造方法

class Bird:
    def __init__(self):
        self.hungry = True

    def eat(self):
        if self.hungry:
            print("eee")
            self.hungry = False
        else:
            print("No,thanks!")
        # print("eat!")


class SongBird(Bird):
    def __init__(self):
        Bird.__init__(self)
        self.sound = "squak"

    def sing(self):
        print (self.sound)


sb = SongBird()
sb.eat()

 

2,使用super函数

__metaclass__=type#super函数只在新式类中起作用
class Bird:
    def __init__(self):
        self.hungry = True

    def eat(self):
        if self.hungry:
            print("eee")
            self.hungry = False
        else:
            print("No,thanks!")
        # print("eat!")


class SongBird(Bird):
    def __init__(self):
        super(SongBird,self).__init__()
        self.sound = "squak"

    def sing(self):
        print (self.sound)


sb = SongBird()
sb.eat()

一个类继承多个超类的情况下,只需要使用一次super函数就可以

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

java中一个子类是不是可以继承父类的构造方法

继承中的构造方法

继承关系中的父子类构造方法的特点

父类子类在有(无)参构造方法继承的一些规则

java构造函数使用方法总结 (继承与构造函数)

Java中的(构造方法方法重载final修饰符使用及继承和抽象)