python面向对象的继承

来源:互联网 发布:linux 驱动 培训 编辑:程序博客网 时间:2024/04/24 05:34

没什么可说的,继承主要就是继承父类的一些方法,代码中很详细

#!/usr/bin/env python #coding:utf-8class Father(object):#新式类    def __init__(self):        self.name='Liu'        self.FamilyName='Yan'            def Lee(self):        print '我是父类函数Lee'        def Allen(self):        print "我是父类函数Allen"        class Son(Father):    def __init__(self):        #Father.__init__(self)   #经典类执行父类构造函数        super(Son,self).__init__()  #新式类执行父类构造函数        self.name='Feng'            def Aswill(self): #子类新增函数        print 'Son.Bar'        def Lee(self):#重写父类函数Lee        print '子类重写了父类函数Lee'    s1=Son()print "继承了父类的姓"+ s1.FamilyNameprint "重写了父类的名字",s1.names1.Lee() #子类重写了父类函数Lees1.Allen() #子类继承了父类函数Allen

继承多个类时的顺序,经典类继承是深度优先,是一个BUG, 新式类是广度优先,应该是用新式类去定义类

新式类

class A(object): #新式类的写法    def __init__(self):        print 'This is from A'        def test(self):        print 'This is test from A'class B(A):    def __init__(self):        print "This is from B"        class C(A):    def __init__(self):        print "This is from C"        def test(self):        print "This is test from C"                class D(B,C):    def __init__(self):        print 'this is D'        T1=D()T1.test()


经典类

class A:    def __init__(self):        print 'This is from A'        def test(self):        print 'This is test from A'class B(A):    def __init__(self):        print "This is from B"        class C(A):    def __init__(self):        print "This is from C"        def test(self):        print "This is test from C"                class D(B,C):    def __init__(self):        print 'this is D'        T1=D()T1.test()




0 0
原创粉丝点击