zoukankan      html  css  js  c++  java
  • 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()




    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    关于sizeof表达式作为数组元素个数的编译
    【deque】滑动窗口、双端队列解决数组问题
    【二叉树】重建二叉树
    字符数组与字符串指针
    【STL】C中的qsort与C++中的sort
    对C++不是类型安全语言的理解
    【vector】创建一个二维vector当作二维数组用
    批量处理改变文件名、文件后缀名
    位运算
    关于sqlserver帐号被禁用问题
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4638057.html
Copyright © 2011-2022 走看看