简明设计模式教程-面向对象编程

面向对象编程的三个特性:封装性、继承性、多态性

封装是指把数据和函数封装成为一个对象,也就是创建一个名字空间,通过这个名字空间引用这些数据和函数,这就是定义对象、声明对象、使用对象。类的定义就是定义对象拥有的属性方法,类的实例化就是声明这个类的一个对象,访问对象的属性和方法就是使用这个对象。

# 定义对象, 定义类class Person():def __init__(self, name, age):# 定义对象的属性self.name = nameself.age = age# 定义对象方法def speak(self, word):print(f'{self.name}说:’, word)# 声明对象,类的实例化p = Person(‘张三’, 18)# 使用对象,调用对象方法p.speak(‘hello, world!’)

继承是指定义对象时复用已有对象的代码,此时已有对象称为基础类,新对象称为扩展类。通过继承机制,新对象不但复用了其它对象的属性和方法,并且在这个基础上重新定义该对象专有的属性和方法。

class Teacher(Person):def __init__(self, name, age):super().__init__(name, age)# 定义新属性self.teaching = ”# 定义新方法def teach(self, teaching):self.teaching = teachingself.speak(self.teaching)# 覆盖已有方法def speak(self, word):print(f’老师{self.name}教授:{self.teaching}’)class Student(Person):def __init__(self, name, age):super().__init__(name, age)self.knowledge = ”def learn(self, teacher):self.knowledge = teacher.teachingself.speak(self.knowledge)def speak(self, word):print(f’学生{self.name}学习:{self.knowledge}’)t = Teacher(‘张三’, 32)s = Student(‘李四’, 10)t.teach(‘知识就是力量!’)s.learn(t)

多态是指对象继承时,重定义基础对象的方法,此时,不同扩展对象调用相同方法时呈现不同的结果,因此叫作多态性。如上述代码中老师和学生对象都调用speak方法但输出却不同。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年7月5日
下一篇 2022年7月5日

相关推荐

  • 高Q谐振器上的可调谐单模激光

    长三角G60激光联盟导读 据悉,晶体铌酸锂(LN)被认为是“光子学的硅”,因为其卓越的光学特性,包括宽透明窗口和高压电、声光、二阶非线性和电光系数,这些对于光子集成电路(PIC)应…

    2022年8月18日
  • 有没有家里三年级的孩子,平时都是几点钟睡觉,坐标上海?

    我一对儿女就读三年级,一般十点钟睡觉。作业吗不算多,一个多小时就能做完。一般我要求放学回来六点前写完作业,有时他们在学校完成了再回来,回来就玩玩玩。我儿子经常不做作业的,批评是少不…

    2022年7月25日
  • 钱大妈获新融资将发力预制菜,但它得先想好这些问题

    记者 | 吴容 编辑 | 牙韩翔 近日,社区生鲜连锁品牌“钱大妈”获得了新一轮融资,由和智投资进行领投,交易金额暂未披露。 据天眼查APP显示,和智投资全称为广东和智投资管理有限公…

    2022年8月4日
  • 生鲜电商的盈利困局:“九死一生”的现状

    图片源于网络 图文无关 “生鲜电商第一股”每日优鲜陷入困境的传闻来得猝不及防。7月28日,几则消息将每日优鲜推至风口浪尖——先是主营业务“30分钟极速达业务关闭”,后是“裁员500…

    2022年8月7日
  • 用完李佳琦的方法,体会到了什么叫如同换张脸

    果然还是李佳琦!!我平时喜欢敷面膜,也比较喜欢研究面膜哈哈,今天整理了几款平价的面膜,本人是混干皮,每个都是真实使用感受哦~ 每个人肤质不一样,根据自己肤质理性入手哦

    2022年5月19日
  • 《Dota》有哪个英雄的改动让你最心痛?

    dota为了游戏的平衡,总会一直推出新版本。对于某些强势的英雄进行削弱,而弱势的英雄进行加强。但是对于一些英雄的大改,几乎使的一个英雄的打法出现了翻天覆地的改变!有一些英雄的技能被…

    2022年7月6日
  • java面试题整理《多线程篇》七

    Thread、Runable和Callable 三者区别?Thread 是一个抽象类,只能被继承,而 Runable、Callable 是接口,需要实现接口中的方法。继承 Thre…

    2022年8月15日
  • 夏日就是不浪费每一刻快乐,入手IQUNIX OG80 快乐贩卖机RGB键盘

    有着铝厂之称的IQUNIX最近有些似乎“不务正业”,在OG80这个“塑料”半透型号上无法自拔,不断推出新配色。这个快乐贩卖机的红白配色设计,我真的是挺喜欢的,于是果断入手。 经典的…

    2022年7月26日
  • 联想发布首个东数西算TruScale进展,“绿色算力”润泽戈壁沙漠

    当前,数字经济已经成为推动全球经济发展的新引擎,而随着今年初“东数西算”这项国家优化资源配置战略性工程的正式启动,在“东数”和“西算”的协同联动下,西部地区的数字经济也迎来加速发展…

    2022年7月29日
  • 9.8 PAM配置

    1./etc/pam.d/system_auth 2.PAM提供的认证服务控制标记 控制标记告诉PAM如何对待模块认证失败。PAM支持4种类型的控制标记: required:每一个…

    2022年8月22日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息