python的继承用法,python中的继承是什么

  python的继承用法,python中的继承是什么

  继承的概述面向对象编程(OOP)语言的主要功能之一就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

  通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。传承的过程就是从一般到特殊的过程。在一些OOP语言中,一个子类可以继承多个基类。但是,一般来说,一个子类只能有一个基类。要实现多重继承,可以通过多级继承来实现。

  实现继承的概念主要有两种方式:实现继承和接口继承。

  1.实现继承是指使用基类的属性和方法而无需额外编码的能力。

  2.接口继承意味着只使用属性和方法的名称,但是子类必须提供实现它们的能力(子类重构父方法)。

  在考虑使用继承的时候,有一点要注意,两个类之间的关系应该是“归属”。例如,Employee是一个人,Manager是一个人,所以这两个类都可以继承Person类。但是腿类不能继承人类,因为腿不是人。

  OOP开发范式大致分为几个阶段:划分对象抽象类将类组织成层次结构(继承和综合)用类和实例进行设计和实现。

  类的继承

  继承的定义

  类Person(object): #定义一个父类def talk(self): #方法print (person is talking . )类中文(person): #定义一个子类,继承person类的DEF Walk(self):#定义自己的方法print (iswalking . ))c=Chinese () c.talk () #调用继承的方法c.walk() #调用自己的方法#输出人在说话.正在行走.构造函数的继承

  如果要给实例C传递参数,就得用构造函数,那么构造函数怎么继承,子类怎么定义自己的属性?

  继承类的构造方法:

  1.经典类:父类名。_ _ init _ (self,参数1,参数2,) 2.新类:超级(子类,自身)。_ _ init _(参数1,参数2,)class person(object):def _ _ init _ _ age):self . name=name self . age=age self . weight= weight def talk(self):print( person is talking . ))类中文(Person): def __init__(自我,姓名,年龄,语言):#继承在先,且在Person的重建中。_ _ init _ _ (self,name,age) #继承父类的构造方法。也可以写成:超级(中国人,自己)。_ _ init _ _ (name,Age) self.language=language #定义类自己的属性def walk (self): print (is walking . )类美国人(人):pass c=中国人( bigberg ,22,中国人)。如果我们简单地在中文子类中定义一个构造函数,其实就是重构。这样,子类就不能继承父类的属性。所以我们在定义子类的构造函数时,要先继承再构造,这样也可以获得父类的属性。

  子类构造器基于父类构造器流程如下:实例化对象c - c调用子类_ _ init _()-子类_ _ init _()继承父类_ _ init _()-调用父类_ _ init _()

  如果我们的中文类继承了Person类,不重写结构就继承了父类结构。实例化子类时,会调用父类结构进行实例化,但不会继承java的构造函数。

  子类对父类方法的重写

  如果我们需要修改基类/父类的方法,我们可以在子类中重构它。下列谈论()的方法:

  类人(对象):def _ _ init _ _(本人,姓名,年龄):本人。name=name self。年龄=年龄自我。weight= weight def talk(self):print(人在说话. ))类中文(人):def __init__(本人,姓名,年龄,语言):人. init__(自我,姓名,年龄)self.language=语言打印(自我,姓名,年龄,体重,语言)def说话(自我):#子类重构方法打印( %s正在说中文%自我。名称 def walk(self):print(正在行走.))c=中文(‘大伯格’,22,’中文)c.talk() #输出伯格22体重中国人伯格在说中文继承的事例班学生(对象):""学习成员基类 member=0 def __init__(自己,姓名,年龄,性别):自己。name=name self。年龄=年龄自我。性=性自我。enroll()def enroll(self):注册打印(刚注册了一个新的学校成员[%s].%自我。姓名)学校成员。member=1 def tell(self):print(-% s- % self)。name)为k,v在self .__词典_ _。items(): print(k,v)print(-end-)def _ _ del _ _(self):print(开除了[% s] % self。姓名)学校成员。成员-=1班主任(学校成员):教师def __init__(本人,姓名,年龄,性别,工资,课程):学校成员.__init__(自己,姓名,年龄,性别)自己。薪资=薪资self.course=课程定义教学(self):打印(老师[%s]正在教[% s])%(自己。名字,自我。当然))班级学生(学生):学生def __init__(本人,姓名,年龄,性别,课程,学费):学校成员.__init__(自己,姓名,年龄,性别)自己。课程=课程本身。tufty=tufty自我。amount=0 def pay _ tufty(自身,金额):print(student [%s]刚交了[%s] % (self.name,amount))self。金额=金额t1=老师( Wusir ,28, M ,3000, python )t1。tell()S1=学生(海涛,38, M , python ,300000)S1。泰尔()S2=学生(李闯,12, M ,输出-结束-刚招收了一个新的学校成员【海涛】。-海涛-年龄38sex Mname haitaoamount课程大蟒学费30000 -结束-刚入学新成员【李闯】.3开除了[李闯]2开除了[乌西尔]开除了[海淘]

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

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