zoukankan      html  css  js  c++  java
  • day16 Python 类的继承关系

    """
    在⾯向对象的世界中存在着继承关系,我们现实中也存在着这样的关系,我们说过x是一种y, 那x就可以继承y,这是理解层面上的。如果上升到代码层面, 我们可以这样认为子类在不影响⽗类的程序运行的基础上对⽗类进行的扩充和扩展。这里我们可以把父类被称为超类或者基类. 子类被称为派生类。
    
    
    代码实现
    
    继承关系在代码上体现为二种形式: 
    
     1. 子类继承自抽象类或普通类
    
     2. 子接口继承自父接口:适用于Java
    """
    
    # 首先, 类名和对象默认是可以作为字典的key的,因为类名和对象都是可以哈希的。
    dic = {}
    dic[Foo] = 123
    dic[Foo()] = 456
    print(dic) # {<class '__main__.Foo'>: 123, <__main__.Foo object at 0x103491550>: 456}
    
    # self在访问⽅法的顺序: 永远先找⾃己的. ⾃己的找不到再找父类的
    
    class F3(object):
        def f1(self):
            ret = super().f1() # 2、继续执行下个继承父类
            print(ret) # 4、ret没有返回值所以print None
            return 123 # 5 返回调用者 123
            
    class F2(object):
        def f1(self):
            print('123') # 3、执行print(123) 没有返回值
            
    class F1(F3, F2): # 查找顺序: 1、⾃己的类中没有f1(),找父类的
        pass  
      
    obj = F1()
    obj.f1() # 6 调用这拿到了返回值,但是没有打印,所以最终结果为 123 None
    

      

  • 相关阅读:
    流畅的python——2 数据结构
    流畅的python——1 数据模型
    cpp3 std::bind
    cpp2 std::forward
    什么是 jQuery EasyUI?
    .Core中什么事依赖注入?
    .net 中datetime? 和 datetime 有什么区别?
    C#生成项目失败 错误列表 CS2001 未能找到源文件 “D:XXXXXX.cs”。
    Docker笔记
    ICollection与IEnumerable
  • 原文地址:https://www.cnblogs.com/fanghongbo/p/9959806.html
Copyright © 2011-2022 走看看