*面向对象的特性

1.3 常用术语#1.3.1 抽象/实现#抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于#描绘程序结构,从而实现这种模型。抽象不仅包括这种模型的数据属性,还定义了这些数据的接口。#对某种抽象的实现就是对此数据及与之相关接口的现实化(realization)。现实化这个过程对于客户#程序应当是透明而且无关的。#1.3.2 封装/接口#封装描述了对数据/信息进行隐藏的观念,它对数据属性提供接口和访问函数。通过任何客户端#直接对数据的访问,无视接口,与封装性都是背道而驰的,除非程序员允许这些操作。作为实现的#一部分,客户端根本就不需要知道在封装之后,数据属性是如何组织的。在Python 中,所有的类属#性都是公开的,但名字可能被“混淆”了,以阻止未经授权的访问,但仅此而已,再没有其他预防#措施了。这就需要在设计时,对数据提供相应的接口,以免客户程序通过不规范的操作来存取封装#的数据属性。#1.3.3 合成#合成扩充了对类的描述,使得多个不同的类合成为一个大的类,来解决现实问题。合成描述了#一个异常复杂的系统,比如一个类由其它类组成,更小的组件也可能是其它的类,数据属性及行为,#所有这些合在一起,彼此是“有一个”的关系。比如,RepairShop“有一个”技工(应该至少有一个#吧),还“有一个”顾客(至少一个)。#这些组件要么通过联合关系组在一块,意思是说,对子组件的访问是允许的(对RepairShop 来#说,顾客可能请求一个SmogCheck,客户程序这时就是与RepairShop 的组件进行交互),要么是聚合#在一起,封装的组件仅能通过定义好的接口来访问,对于客户程序来说是透明的。继续我的例子,#客户程序可能会建立一个SmogCheck 请求来代表顾客,但不能够同RepairShop 的SmogZone 部分进#行交互,因为SmogZone 是由RepairShop 内部控制的,只能通过smogCheckCar()方法调用。Python#支持上述两种形式的合成。# 1.3.4 派生/继承/继承结构#

派生描述了子类的创建,新类保留已存类类型中所有需要的数据和行为,但允许修改或者其它#的自定义操作,都不会修改原类的定义。继承描述了子类属性从祖先类继承这样一种方式。从前面#的例子中,技工可能比顾客多个汽车技能属性,但单独的来看,每个都“是一个”人,所以,不管#对谁而言调用talk()都是合法得,因为它是人的所有实例共有的。继承结构表示多“代”派生,可#以描述成一个“族谱”,连续的子类,与祖先类都有关系。# 1.3.5 泛化/特化#泛化表示所有子类与其父类及祖先类有一样的特点,所以子类可以认为同祖先类是“是一个”#的关系,因为一个派生对象(实例)是祖先类的一个“例子”。比如,技工“是一个”人,车“是一#个”交通工具,等等。在上面我们间接提到的族谱图中,我们可以从子类到祖先类画一条线,表示#“是一个”的关系。特化描述所有子类的自定义,也就是,什么属性让它与其祖先类不同。#1.3.5 多态#多态的概念指出了对象如何通过他们共同的属性和动作来操作及访问,而不需考虑他们具体的#类。多态表明了动态(又名,运行时)绑定的存在,允计重载及运行时类型确定和验证。# 1.3.6 自省/反射#自省表示给予你,程序员,某种能力来进行像“手工类型检查”的工作,它也被称为反射。这#个性质展示了某对象是如何在运行期取得自身信息的。如果传一个对象给你,你可以查出它有什么#能力,这样的功能不是很好吗?这是一项强大的特性,在本章中,你会时常遇到。如果Python 不#支持某种形式的自省功能,dir()和type()内建函数,将很难正常工作。请密切关注这些调用,还#有那些特殊属性,像__dict__,__name__及__doc__。可能你对其中一些已经很熟悉了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容

  • 学习要点: 讲师:杨应勇 面向对象的三个主要特性是封装、继承和多态。 一、OOP的封装 隐藏对象的字段和实现细节,...
    紫气东来__阅读 194评论 0 0
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,843评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,550评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,335评论 25 707
  • 天刚微亮,她就睁开了眼睛,在床上翻来覆去,倒腾了很久,再也睡不着。 不知道在想些什么…… 2016,即将满22岁的...
    79774fad5f6a阅读 641评论 0 0