zoukankan      html  css  js  c++  java
  • 类的继承

    继承   子类继承父类所有属性     如果属性名重名了,则先从子类开始找,不会覆盖父类的属性

     1 class Dad:
     2     money = 10
     3 
     4     def __init__(self, name):
     5         print('开始')
     6         self.name = name
     7 
     8     def hit_son(self):
     9         print('%s 正在打儿子' % self.name)
    10 
    11 
    12 class Son(Dad):
    13     money = 1100000000   # 与父类重名了,不会覆盖父类的属性
    14     pass
    15 
    16 
    17 s1 = Son('haha')
    18 print(s1.money)
    19 print(Dad.money)
    20 输出:
    21 开始
    22 1100000000
    23 10

     如果A类继承B类,那么当A类进行实例化的时候,首先在A类中寻找init的方法,如果没有,就从B类中寻找。

    传递的参数就按照找到的那个init方法进行传参。调用函数属性的时候也是先从本类中寻找,如果本类中有,就执行本类的函数,如果没有就从父类中寻找后执行

     1 class Dad:
     2     money = 10
     3 
     4     def __init__(self, name):
     5         print('开始')
     6         self.name = name
     7 
     8     def hit_son(self):
     9         print('%s 正在打儿子' % self.name)
    10 
    11 
    12 class Son(Dad):
    13     money = 1100000000   # 与父类重名了,不会覆盖父类的属性
    14     def hit_son(self):
    15         print('这是子类')
    16 
    17 
    18 s1 = Son('haha')
    19 print(s1.money)
    20 print(Dad.money)
    21 s1.hit_son()
    22 输出:
    23 开始
    24 1100000000
    25 10
    26 这是子类

    什么时候用继承:1.类之间有显著的不同,并且较小的类是较大的类所需要的组件时,用组合

    2.当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承

    接口类   必须实现父类的方法,否则无法创建子类

     1 import abc
     2 
     3 
     4 class AllBasic(metaclass=abc.ABCMeta):
     5     @abc.abstractmethod
     6     def read(self):
     7         pass
     8 
     9     @abc.abstractmethod
    10     def write(self):
    11         pass
    12 
    13 
    14 class Mem(AllBasic):
    15     def read(self):
    16         print('写方法')
    17 
    18     def write(self):
    19         print('写方法')
    20 
    21 
    22 s1 = Mem()

    继承顺序    python3中是使用广度优先。

  • 相关阅读:
    Karen and Game CodeForces
    Array and Segments (Easy version) CodeForces
    Diverse Garland CodeForces
    Nice Garland CodeForces
    Divisors of Two Integers CodeForces
    Two distinct points CodeForces
    Unique Snowflakes UVA
    Codeforces Round #534 (Div. 2)D. Game with modulo-1104-D(交互+二分+构造)
    关于排列组合问题的基础补充
    杭电 rescue(经典广搜)(深搜广搜对比)
  • 原文地址:https://www.cnblogs.com/ch2020/p/12430596.html
Copyright © 2011-2022 走看看