博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
继承与派生, 继承的应用
阅读量:7049 次
发布时间:2019-06-28

本文共 1792 字,大约阅读时间需要 5 分钟。

一,什么是继承?

继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类。

继承的特性是:子类会遗传父类的属性。

强调:继承是类与类之间的关系

 

二,为什么用继承?

继承的好处就是可以减少代码的冗余 3、如何用继承     在python中支持一个类同时继承多个父类     在python3中         如果一个类没有继承任何类,那默认继承object类     在python2中:         如果一个类没有继承任何类,不会继承object类     新式类         但凡继承了object的类以及该类的子类,都是新式类     经典类         没有继承object的类以及该类的子类,都是经典类     在python3中都是新式类,只有在python2中才区别新式类与经典类     新式类vs经典类? ''' class Parent1(object):     pass class Parent2(object):     pass class Sub1(Parent1,Parent2):     pass # print(Sub1.__bases__) print(Parent1.__bases__) print(Parent2.__bases__) 继承的应用: 注意: 派生:子类中新定义的属性,子类再使用时始终以自己的为准。 继承父类,可以在父类里把子类里相似的独有属性给摘出来,然后让子类继承使用。 对象查找属性的顺序:对象自己---》对象的类-----》父类-----》父类----》
#派生:子类中新定义的属性,子类在使用时始终以自己的为准 class OldboyPeople:         #父类     school = 'oldboy'     def __init__(self,name,age,sex):      #把子类中属性相似的拿出来。         self.name = name #tea1.name='egon'         self.age = age #tea1.age=18         self.sex = sex #tea1.sex='male' class OldboyStudent(OldboyPeople):     def choose_course(self):   #学生里面的独有属性已经被拿出来了,所以不用写了。直接继承父类的。         print('%s is choosing course' %self.name) class OldboyTeacher(OldboyPeople):     #            tea1,'egon',18,'male',10     def __init__(self,name,age,sex,level):         # self.name=name         # self.age=age         # self.sex=sex         OldboyPeople.__init__(self,name,age,sex)         self.level=level     def score(self,stu_obj,num):         print('%s is scoring' %self.name)         stu_obj.score=num stu1=OldboyStudent('耗哥',18,'male') tea1=OldboyTeacher('egon',18,'male',10) #对象查找属性的顺序:对象自己-》对象的类-》父类-》父类。。。 # print(stu1.school) # print(tea1.school) # print(stu1.__dict__) # print(tea1.__dict__) tea1.score(stu1,99) print(stu1.__dict__) # 在子类派生出的新功能中重用父类功能的方式有两种: #1、指名道姓访问某一个类的函数:该方式与继承无关
 

转载于:https://www.cnblogs.com/fxc-520520/p/9230081.html

你可能感兴趣的文章
[LintCode] Longest Increasing Subsequence
查看>>
Best Time to Buy and Sell Stock(121)
查看>>
spring ApplicationListener&ApplicationEvent
查看>>
Design Pattern - Abstract Factory Pattern(译)
查看>>
Compass排版模块
查看>>
RD为什么也需要云
查看>>
运行 Docker 容器时的安全风险:别丢了你的套接字
查看>>
Laravel 添加自定义辅助函数
查看>>
【JVM类加载机制】从一个对象的验证问题说开去
查看>>
django 1.8 官方文档翻译:13-1-2 使用Django认证系统
查看>>
img元素下有空白
查看>>
cacti ERROR 处理
查看>>
saltstack mutilple master 高可用研究
查看>>
Linux环境下 RabbitMQ 的下载与安装
查看>>
mysql无备份恢复
查看>>
Node.js之Buffer
查看>>
AIoT真正向万亿级市场落地的关键是什么?
查看>>
关于k8s集群容器日志收集的总结
查看>>
WordPress 5文章编辑真难用 换回老版经典编辑器教程
查看>>
第二十二章:动画(三)
查看>>