美文网首页
Python-面向对象(二)

Python-面向对象(二)

作者: Alice丨殇 | 来源:发表于2018-08-12 20:02 被阅读0次

    四、继承方法

    1、单继承

    子类在继承的时候,在定义类时,小括号()中为父类的名字
    父类的属性、方法,会被继承给子类

    class Animal():
        pass
    
    class Cat(Animal):
        def __init__(self,name):
            self.name = name
    
    class Dog(Animal):
        def __init__(self,name):
            self.name = name
    
    bsm = Cat("波斯猫")
    print(bsm.name)
    
    wc = Dog("旺财")
    print(wc.name)
    
    2、多继承

    多继承就是子类可以有多个父类并可以继承他们的属性行为

    class A():
    
        def __init__(self):
            self.name = 10
            self.age = 20
    
        def show(self):
            print("heheh A")
    
    class B():
        def show1(self):
            print("哈哈哈")
    
    class C(A,B):
        pass
    
    c = C()
    print(c.name)
    print(c.age)
    c.show()
    c.show1()
    print(c.age)
    print(C.__mro__)
    

    五、重写和调用父类方法

    1、重写就是当子类不满足父类的时候就需要重写,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法。

    class Cat(object):
    def sayHello(self):
    print("halou-----1")
    
    
    class Bosi(Cat):
    
    def sayHello(self):
    print("halou-----2")
    
    bosi = Bosi()
    
    bosi.sayHello()
    

    2、调用父类方法当子类想回到父类的属性的时候就需要用到调用父类方法用super()。

    class Bosi(Cat):
    def __init__(self,name):
    # 调用父类的__init__方法1(python2)
    #Cat.__init__(self,name)
    # 调用父类的__init__方法2
    #super(Bosi,self).__init__(name)
    # 调用父类的__init__方法3
    super().__init__(name)
    
    def getName(self):
    return self.name
    
    bosi = Bosi('xiaohua')
    
    print(bosi.name)
    print(bosi.color)
    

    相关文章

      网友评论

          本文标题:Python-面向对象(二)

          本文链接:https://www.haomeiwen.com/subject/ytfebftx.html