python类的继承 通俗解释,python中的继承有什么特点

  python类的继承 通俗解释,python中的继承有什么特点

  

  一、继承的概念

  现实生活中,继承一般是指子女继承父母的财产。在程序中,继承描述了事物之间的关系。比如猫狗属于动物,在节目中可以描述为猫狗遗传自动物。同样,波斯猫和巴李茂都继承了猫,而沙皮狗和大麦町都继承得足够多,如下图:

  二、继承的示例

  classCat(object):

  Def__init__(self,name,color= white) :

  self.name=name

  self.color=颜色

  defrun(self):

  打印( %s:正在运行 %self.name )

  classBosi(Cat):

  defsetNewName(self,newName):

  self.name=newName

  打败(自己):

  打印( %s:吃 %self.name )

  Bs=博斯(“波斯猫”)

  print( BS的名称为:%s,颜色为:%s%(bs.name,bs.color))

  吃吧()

  Bs.setNewName(汤姆猫)

  bs.run()的运行结果是:

  bs的名字叫波斯猫,颜色是:白。

  波斯猫:吃。

  Tom :正在跑步相关推荐:《Python视频教程》

  说明:

  1.虽然子类没有定义__init__()方法,但是父类定义了。所以这个方法在子类和父类集成的时候是继承的,所以只要创建了博斯的对象,默认执行继承的__init__()方法。

  2.当子类继承时,当定义类时,括号()是父类的名称。

  3.父类的所有非私有属性和方法都将被子类继承。

  注意:

  1.私有属性,不能通过对象直接访问,但是可以通过方法访问。

  2.私有方法,不能通过对象直接访问。

  3.私有属性和方法,不会被子类继承或访问。

  4.一般来说,私有的属性和方法是不向公众公布的,它们通常用于内部事务,以起到安全的作用。

  classAnimal(对象):

  Def__init__(self,name= animal ,color= white) :

  自我。__name=name

  self.color=颜色

  def__test1(self):

  打印(自我。_ _名称)

  打印(自身颜色)

  deftest2(自我):

  印刷品

  elf.__name)

  print(self.color)

  classDog(Animal):

  defdogTest1(self):

  #不能访问父类的私有属性:AttributeError:'Animal'objecthasnoattribute'__name'

  #print(self.__name)

  print(self.color)

  defdogTest2(self):

  #self.__test1()

  self.test2()

  A=Animal()

  #print(A.__name)

  print(A.color)

  #不能访问父类的私有方法:AttributeError:'Animal'objecthasnoattribute'__test1'

  #A.__test1()

  A.test2()

  print("-----------------分割线-----------------")

  D=Dog(name="阿黄",color="黄色")

  D.dogTest1()

  D.dogTest2()运行结果为:

  

白色

  动物

  白色

  -----------------分割线-----------------

  黄色

  阿黄

  黄色

三、多继承

  

  从图中能够看出,所谓多继承,即子类有多个父类,并且具有它们的特征。

  Python中多继承的格式如下:

  

classA:

  defprintA(self):

  print("---A---")

  classB:

  defprintB(self):

  print("---B---")

  #定义一个子类继承A,B

  classC(A,B):

  defprintC(self):

  print("---C---")

  obj_C=C()

  obj_C.printA()

  obj_C.printB()

运行结果为:

  

---A---

  ---B---

说明

  1.python中是可以多继承的。

  2.父类中的方法、属性,子类会继承。

  3.如果多个父类中有同一个方法,谁写在前面就调用谁的方法。

  

classA:

  defprintA(self):

  print("---A---")

  classB:

  defprintB(self):

  print("---B---")

  #定义一个子类继承A,B

  classC(A,B):

  defprintC(self):

  print("---C---")

  obj_C=C()

  obj_C.printA()

  obj_C.printB()

  #可以查看一个雷的对象搜索方法时的先后顺序

  print(C.__mro__)

运行结果为:

  

---A---

  ---B---

  (<class'__main__.C'>,<class'__main__.A'>,<class'__main__.B'>,<class'object'>)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: