python面向对象的继承

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

#!/usr/bin/env python 
#coding:utf-8


class 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.FamilyName
print "重写了父类的名字",s1.name
s1.Lee() #子类重写了父类函数Lee
s1.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值