本文实例讲述了Python3.5面向对象程序设计之类的继承和多态。分享给大家供大家参考,具体如下:
继承是指:可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
(1)通过继承创建的新类称为“子类”或“派生类”。
(2)被继承的类称为“基类”,“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(继承)和“组合”(组合)来实现。
在某些OOP语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。
继承概念的实现方式主要有2类:实现继承,接口继承。
(1),实现继承是指使用基类的属性和方法而无需额外编码的能力;
,(2)接口继承是指仅使用属性和方法的名称,但是子类必须提供实现的能力(子类重构父类方法),
在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属”于关系。
抽象类仅定义将由子类创建的一般属性和方法。
OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成)→用类与实例进行设计和实现几个阶段。
<强> 强>
#?usr/bin/env python # - * -编码:utf - 8 - * #作者:ZhengzhengLiu #类的继承 类人: def __init__(自我、名字、年龄): self.name=名字 自我。年龄=年龄 def吃(自我): 打印(“% s吃……”% self.name) def睡眠(自我): 打印(“% s睡……”% self.name) def谈话(自我): 打印(“% s说……”% self.name) 类人(人):#继承父类类的人 def make_money(自我): 打印(“% s是赚钱……”% self.name) def睡眠(自我): People.sleep(自我)#对父类方法的扩展 打印(“人是睡…”) 类女性(人): def店(自我): 打印(“% s是购物……”% self.name) m1=人(“杰克”、“20”) m1.eat () m1.make_money () m1.sleep () w1=女性(“艾米”、“25”) w1.talk () w1.shop () >之前运行结果:
杰克吃……
引用>
杰克是赚钱……
杰克在睡觉……
男人在睡觉……
艾米说话……
艾米是购物…
#?usr/bin/env python # - * -编码:utf - 8 - * #作者:ZhengzhengLiu #类的继承 #阶级:#经典类 类人(对象):#新式类 def __init__(自我、名字、年龄): self.name=名字 自我。年龄=年龄 def吃(自我): 打印(“% s吃……”% self.name) def睡眠(自我): 打印(“% s睡……”% self.name) def谈话(自我): 打印(“% s说……”% self.name) 类人(人):#继承父类类的人 def __init__(自我,姓名、年龄、金钱): # People.__init__(自我、名字、年龄)#(方法一)对构造函数进行重构,添加父类中没有的属性 超级(人,自我). __init__(姓名、年龄)#(方法二)利用超级对构造函数进行重构(新式类写法) 自我。钱=钱 打印(“% s有钱% s $ " % (self.name self.money)) def make_money(自我): 打印(“% s是赚钱……”% self.name) def睡眠(自我): People.sleep(自我)#对父类方法的扩展 打印(“人是睡…”) 类女性(人): def店(自我): 打印(“% s是购物……”% self.name) m1=人(“杰克”、“20”,10) m1.eat () m1.make_money () m1.sleep () w1=女性(“艾米”、“25”) w1.talk () w1.shop () >之前
引用>
#?usr/bin/env python # - * -编码:utf - 8 - * #作者:ZhengzhengLiu #类的继承 #阶级:#经典类 类人(对象):#新式类 def __init__(自我、名字、年龄): self.name=名字 自我。年龄=年龄 self.friends=[] def吃(自我): 打印(“% s吃……”% self.name) def睡眠(自我): 打印(“% s睡……”% self.name) def谈话(自我): 打印(“% s说……”% self.name) 类关系(对象): def make_friends(自我,obj): print (“% s和% s交朋友”% (self.name obj.name)) self.friends.append (obj) 类人(人、关系):#多继承 def __init__(自我,姓名、年龄、金钱): # People.__init__(自我、名字、年龄)#(方法一)对构造函数进行重构,添加父类中没有的属性 超级(人,自我). __init__(姓名、年龄)#(方法二)利用超级对构造函数进行重构(新式类写法) 自我。钱=钱 打印(“% s有钱% s $ " % (self.name self.money)) def make_money(自我): 打印(“% s是赚钱……”% self.name) def睡眠(自我): People.sleep(自我)#对父类方法的扩展 打印(“人是睡…”) 类女性(人、关系):#多继承 def店(自我): 打印(“% s是购物……”% self.name) m1=人(“杰克”、“20”,10) w1=女性(“艾米”、“25”) m1.make_friends (w1) w1.name=傲酢? 打印(m1.friends)Python3.5面向对象程序设计之类的继承和多态详解