zoukankan      html  css  js  c++  java
  • python基础 day24 面向对象-继承1

    # 继承 --- 解决代码的重复
    
    class A:
        pass
    class B(A):
        pass
    B继承A,A是父类,B是子类
    A是父类 基类 超类
    B是子类 派生类
    子类可以使用父类中的 方法、静态变量
    

    父类和子类方法的选择:
    子类的对象,如果去调用方法,永远优先调用自己的,自己有就调用自己的,自己没有就调用父类的
    如果自己有,还想调用父类的,直接在子类方法中 父类名.方法名(self)

    class A:
        def __init__(self, name):
            self.name = name
        def eat(self):
            print(f'{self.name} is eating')
        def drink(self):
            print(f'{self.name} is drinking')
        def sleep(self):
            print(f'{self.name} is sleeping')
    
    class Cat(A):
        def eat(self):
            print('hahah')
            A.eat(self)
        def climb_tree(self):
            print(f'{self.name} is climb tree')
    
    class Dog(A):
        def home(self):
            print(f'{self.name} is keeping home')
    
    tom = Cat('tom')
    print(tom.name)
    tom.eat()
    
    # 子类中独有的属性
    class A:
        def __init__(self, name):
            self.name = name
        def eat(self):
            print(f'{self.name} is eating')
        def drink(self):
            print(f'{self.name} is drinking')
        def sleep(self):
            print(f'{self.name} is sleeping')
    
    class Cat(A):
        def __init__(self, name, color):
            A.__init__(self, name)  # 调用父类的初始化,去完成一些通用属性的初始化值
            self.color = color  # 派生属性
        def climb_tree(self):
            print(f'{self.name} is climb tree')
    
    tom = Cat('tom','blue')
    print(tom.color)
    print(tom.name)
    
    # 多继承
    # 一些语言不支持多继承:java
    # 一个类有多个父类,在调用父类方法的时候,按照继承顺序,先继承的就先寻找
    class A:
        def func(self): print('in A')
    class B:
        def func(self): print('in B')
    class C(A, B):
        pass
    class D(B,A):
        pass
    
    C().func()  # in A
    D().func()  # in B
    
  • 相关阅读:
    马肯9450命令回传
    上海公积金社保业务办理
    工厂调试命令总结
    数据库自动备份
    powerDesigner16.5导出word
    winform 打印预览
    winform 页面设计(一)
    梅特勒-托利多 TCS-35 电子台秤
    winform 练习多线程
    ASP.NET Core 3.1使用Swagger API接口文档
  • 原文地址:https://www.cnblogs.com/west-yang/p/12885067.html
Copyright © 2011-2022 走看看