zoukankan      html  css  js  c++  java
  • 类的继承---多重继承(两个父类有相同方法名和参数)

     1 # -*-coding:gb2312-*-
     2 
     3 #Function:测试一下多继承
     4 
     5 class A:
     6     
     7     def F1(self):
     8         print '调用A.F1()'
     9     
    10     def F2(self):
    11         print '调用A.F2()'
    12         self.F1()
    13         
    14     def F3(self):
    15         print '调用A.F3()'
    16         self.F1()
    17         
    18 
    19 class B:
    20     
    21     def F2(self):
    22         print '调用B.F2()'
    23         
    24     def F3(self):
    25         print '调用B.F3()'
    26         
    27 class C(A, B):
    28     
    29     def F4(self):
    30         print 'C.F4'
    31         self.F2()
    32         self.F3()
    33         
    34 c = C()
    35 c.F4()

    该段程序的含义:
    定义类A(包括方法F1、F2、F3,F2和F3分别调用F1),定义类B(包括方法F2、F3)

    定义类C(继承自类A和类B),定义方法F4,调用继承的方法F2和F3

    运行结果如下:

    C.F4
    调用A.F2()
    调用A.F1()
    调用A.F3()
    调用A.F1()

    第二步:

    替换定义类C的继承顺序,即定义如下,其他不变:

    class C(B,A):

    之后再运行程序,运行结果如下:

    C.F4
    调用B.F2()
    调用B.F3()

    说明针对python这样的解释型语言不会预编译,运行时会先去找A的对应函数,如果找到就直接调用A的,否则就去找B的对应函数

    而解释型语言(如C++)程序在编译阶段就会报错,不允许这样写

  • 相关阅读:
    js实现IE6下png背景透明,超简单,超牛!
    SQLSERVER 动态执行SQL sp_executesql与EXEC
    存储过程中的 SET NOCOUNT ON
    sql CHARINDEX
    css让页面居中
    (转)GridView合集
    (转)智能客户端(SmartClient)
    将程序加到启动组
    SQL时间函数详细说明
    独立存储
  • 原文地址:https://www.cnblogs.com/keke-xiaoxiami/p/3812420.html
Copyright © 2011-2022 走看看