Python3.5面向对象程序设计之类的继承和多态详解

  

本文实例讲述了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面向对象程序设计之类的继承和多态详解