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()

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

时间: 2024-12-27 06:44:51

python面向对象的继承的相关文章

Python面向对象特性 - 继承

面向对象有3大特性:继承.多态.封装,本章介绍 Python中的 继承 特性~? 什么是继承 继承是创建类的一种方式,在 Python中支持多继承,即在创建类的时候可以继承一个或者多个父类.在继承关系中,被继承的类通常称为父类(或超类,基类),新建的类则称为子类(或派生类).?继承的优势在于可以有效地重用代码,提高代码的可读性~?继承示例: class Fu_1: # 父类 pass class Fu_2: # 父类 pass class Zi_1(Fu_1): # 单继承 pass class

python面向对象之继承与派生

一.继承 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承,如果是多继承的话,继承顺序有深度和广度2种 示例: class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass pass

python面向对象之继承/多态/封装

老师说,按继承/多态/封装这个顺序来讲. 子类使用父类的方法: #!/usr/bin/env python # coding:utf-8 class Vehicle: def __init__(self,name,speed,load,power): self.name = name self.speed = speed self.load = load self.power = power def run(self): print("开动啦.") class Benz(Vehicle

十七、Python面向对象之继承

在面向对象,继承是一个很重要的特性 子类与父类,子类是对父类的一种扩展,在父类的属性和方法上进行一些扩展 示例:没带继承 #定义一个带编号和状态的门的类 class Door(object): def __init__(self,num,status): self.num = num self.status = status def open(self): self.status = 'open' def close(self): self.status = 'close' #定义一个可以锁的门

Python面向对象之继承

python不支持多态 代码区: 1 class UniversityMember: 2 def __init__(self, name, age): 3 self.name = name; 4 self.age = age; 5 6 # 实例方法 7 def getName(self): 8 return self.name; 9 10 def getAge(self): 11 return self.age; 12 13 # 子类学生类继承父类 14 class Student(Univer

Python 面向对象编程——继承和多态

1.1   继承和多态 1.1.1   继承 当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). >>> class Animal(object): ...    def run(self): ...        print('Animal is running...') #父类 ... >>> class Dog(Ani

python 面向对象四 继承和多态

一.继承 1 class Animal(object): 2 def run(self): 3 print('Animal is running...') 4 5 class Dog(Animal): 6 7 def run(self): 8 print('Dog is running...') 9 10 def eat(self): 11 print('Eating meat...') 12 13 dog = Dog() 14 dog.run() 1 Dog is running... 当子类

Java ,python面向对象的继承及其区别

JAVA JAVA继承基本样式 class Demo extends Object{ Demo(int a){ this(); } Demo(){ super(); } } java默认继承Object 类, 并一定会在构造函数中调用super()方法,对父类进行实例化.注意:this()和super()不能同时出现在同一个构造函数中,但super()必须在其中一个构造函数中出现! Java实例化过程 运行父类的静态代码部分 再运行子类的静态代码部分 执行父类成员代码 执行父类构造函数 -- 父

python -- 面向对象编程(继承、重写)

一.继承 子类可以继承父类的所有公有成员,但不能直接访问父类的私有成员,只能通过父类的公有方法间接访问私有属性或私有方法. 如: class DerviedClassName(BaseClassName1[,BaseClassName2,......]): 语句1 语句2 ....... 语句N 公有属性既可以在类的内部进行访问,也可以在外部程序中使用. 派生类(子类)继承了基类(父类)的行为和属性之后,还可以增加某些特定的行为和属性. 继承分为单继承和多继承 A.单继承 # ---------