网站首页 > 资源文章 正文
【Python小短课 24】三探面向对象
来说下面向对象其中“继承”的概念。
如之前所说,类可以理解为一种模板,那么继承可以理解为一种提升、扩展模板能力的技术。
代码:
#!/usr/bin/python # -*- coding: UTF-8 -*- ? class Dog: def __init__(self, name, color): self.name = name self.color = color def sit(self): print(self.name+"坐下了") def smile(self): print(self.name+"笑了") ? oMyDog = Dog("托比", "白色") oMyDog.sit() oMyDog.smile() ? oHerDog = Dog("莱斯", "黑色") oHerDog.sit() oHerDog.smile()
如代码所示,Dog类作为生产狗的模板,规定了通用的属性name(名字)color(颜色),规定了通用的方法sit(坐下)smile(笑)。
我们拿着这个Dog类生产了千千万万的狗,突然有一天总结发现,狗也是可以分类的,不同类别的狗拥有共性,也有自己的特性。譬如我们发现有一类SuperDog(超级狗)不仅有name(名字)color(颜色),也有hairstyle(发型)属性;不仅有sit(坐下)smile(笑)方法,也有shoot(射击)方法。
所以,我们基于Dog类,定义了我们的SuperDog类:
#!/usr/bin/python # -*- coding: UTF-8 -*- ? class Dog(object): def __init__(self, name, color): self.name = name self.color = color def sit(self): print(self.name+"坐下了") def smile(self): print(self.name+"笑了") #SuperDog继承于Dog class SuperDog(Dog): def __init__(self, name, color, hairstyle): #先初始化基类Dog的部分 super(SuperDog, self).__init__(name, color) #再初始化自己的部分 self.hairstyle = hairstyle def shoot(self): print(self.name+"射击了") ? oMyDog = Dog("托比", "白色") oMyDog.sit() oMyDog.smile() ? oHerDog = Dog("莱斯", "黑色") oHerDog.sit() oHerDog.smile() ? oYourDog = SuperDog("杰克", "红色", "凌乱") oYourDog.sit() oYourDog.smile() oYourDog.shoot() ?
可以说SuperDog类继承了Dog类,然后我们拿SuperDog类这个超级狗的模板生产了oYourDog这个对象,这个对象除了拥有常规狗的属性和方法,也拥有自己的属性hairstyle(凌乱的发型),也拥有shoot(射击)的能力。
各位小萌新可能会不理解部分代码细节。没关系,各位先对“继承”这个类的概念有个直观感受,后续我们继续讲解。
猜你喜欢
- 2024-09-18 Python中的“实例化对象”——掌握面向对象编程的核心技能
- 2024-09-18 面向过程和面向对象最通俗的解释(面向对象和面向过程的概念和区别)
- 2024-09-18 Python | 面向对象如何快速实现(一)
- 2024-09-18 漫画:如何通俗易懂地解释面向对象思想?
- 2024-09-18 一文让你掌握Python面向对象的编程思维
- 2024-09-18 什么是面向对象,看这一篇就够了(什么叫面向对象)
- 2024-09-18 C#自学——面对对象(OOP)(c#面向对象的编程)
- 2024-09-18 面向对象:静态方法、类方法、属性方法
- 2024-09-18 Delphi基础教程图文版之初识面向对象
- 2024-09-18 最容易被人忽视的面向对象的六大原则
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)