美文网首页程序员
面向对象-三才之境

面向对象-三才之境

作者: 红尘策马 | 来源:发表于2017-07-27 22:01 被阅读0次

何谓三才?天地人。面向对象也有三才?封装-继承-多态。

姑妄论之,三才之境,简直就是对面向对象的三个特性的最好的解释。

天,神神秘秘,条条框框,上百载修仙,三万载成神,将神及其衣食住行等包装起来,和封装神合貌合,封装将数据、方法包装起来,其一是为了提高神秘度,隔离复杂度,其二是对自己的保护,对自己隐私的保护;地,厚厚重重,衍生之基,地势坤,厚德载物,大地继承了天的阔与广,又发展了自己的纳物容人,层级关系明显,功能划分清晰,将继承这一特性诠释的很好;人,人士我们最了解的,因为我们自己就是这一类中的一的对象,多态的特性在跟人做类比的时候,我们会理解的更加清晰,千姿百态,万象正新。

封装在前文有大量陈述,继承,一个类型继承另外一个类型,当前类型就会拥有另一个类型的所有公共属性和方法。此时,有了父类与子类:

父类:被继承的类,也叫基类、超类

子类:继承了父类的类,也叫派生类,子类拥有父类所有的公共属性和方法(关系就如你是老李家的儿子/女儿,而老李家却不是你,因为还有其他的人以及物)

一个子类,可继承父类,父类之前也还可以继承父类,如家谱一样,子类与父类是“is a”的关系。

那么就又出现了多继承,就像一家人可以要更多的子嗣,一个人也可以有更多的干爹干妈;一个子类,可同时继承多个父类,可以同时使用多个父类的属性和方法

那么就又出现了一个情况,父类中出现相同属性或方法时,优先继承优先使用,(先查找子类自身中是否有需要的属性/方法,若有,直接使用,若没有,根据继承顺序,逐级查找,直到找到第一个为止,并调用)可使用__mro__:查看属性/方法的搜索顺序

所以,在写代码的时候,尽量不要在父类中定义相同名称的属性或方法

当然,子类有自己的独立性与可变性,可以重新定义父类中存在的方法(方法重写),子类继承了之后,想调用父类的属性和方法怎么调用呢?

class User(Person):

    def __init__(self, name, age):

        # 直接通过父类的类名称调用父类的属性和方法

        Person.__init__(name, age)

        # 通过super()来调用父类的属性和方法

        super().__init__(name, age)

子类有自己的可变性,就出现了多态,什么是多态呢?程序在运行的过程中,根据执行条件的不同,动态执行不同的操作代码的过程称为程序运行时多态。

腾讯网图标之面向对象

多态也许不是主观意识推动的,但是却会在我门编码的时候不自觉的开始,当我们熟悉了面向对象之后,不会再问什么是多态了,因为我们已经从代码的编写过程中体会到了多态的存在,就像小得时候总是问:风是什么?感觉解释不上来,但随着我们的成长,自然而然就感觉到了风,当她时而轻柔时而狂暴的时候更为明显。

相关文章

  • 面向对象-三才之境

    何谓三才?天地人。面向对象也有三才?封装-继承-多态。 姑妄论之,三才之境,简直就是对面向对象的三个特性的最好的解...

  • 好程序员web前端学习路线之Javascript面向对象

    好程序员web前端学习路线之Javascript面向对象,面向对象是使用对象,面向对象开发就是使用对象开发。 面向...

  • Lua-基本语法

    1.基本语法 2.表 3.数组 4.面向对象之复制表的方式面向对象 5.面向对象之函数闭包的方式面向对象

  • 面向对象和面向过程

    1.面向对象:面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之...

  • 那些年出现的作业

    Java面向对象之类的练习之模拟计算器 demo Java面向对象之类的练习之ArrayBox封装 demo

  • kot

    #Kotlin之班门弄斧 ##面向对象 ##java和kotlin的交互 ##协程及协程框架 ## 面向对象 ...

  • 营销比赛二三事

    Python面向对象编程三大特性调研 Python面向对象之封装 在Python中,没有类似 private 之类...

  • java基础-day10-面向对象4.0

    面向对象4.0 1. 面向对象之继承 1.1 生活中的继承 1.2 Java中的继承 1.3 子类对象创建,会调...

  • Java之面向对象的特征

    面向对象的特征之封装性 举例

  • 面向对象之创建对象

    一,工厂模式 写法 本质:就是一个函数,通过传入函数内部需要参数,返回一个对象 优点: 封装好以后可以反复调用,解...

网友评论

    本文标题:面向对象-三才之境

    本文链接:https://www.haomeiwen.com/subject/ygstlxtx.html