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
    
  • 相关阅读:
    QBoxLayout中setSpacing(int)和addSpacing(int)的区别
    BZOJ1017 树形DP
    树形DP 2415HDU
    树形DP基础题 HDU1520
    最小生成树个数 并查集压缩路径
    伸展树基本概念基本题目
    BZOJ1010单调性DP优化
    BZOJ1009 矩阵快速幂+DP+KMP
    字典树(数组实现)
    poj 1611 The Suspects(并查集输出集合个数)
  • 原文地址:https://www.cnblogs.com/west-yang/p/12885067.html
Copyright © 2011-2022 走看看