面向对象

我与影子孤独终老i 提交于 2019-11-30 11:54:32

今天给大家介绍一下什么是面向对象。

我们都知道python是面向对象的程序设计,那什么是面向对象?

面向对象的程序设计的核心是对象。简单的理解对象的话,就是把自己当作上帝,上帝眼里世间存在的万物都是对象,不存在的也可以自己创造。

不管是面向对象还是面向过程,都有自己的优点,面向对象的优点是解决了程序的扩展性,对某一个对象的单独修改会立刻反映导整个体系中,例如对游戏中一个人物参数的特征和技能修改都很容易(因为你是上帝,你想怎么改就怎么改)

我们先来了解python中的类和对象

  • 类:具有相同特征的一类事物(人,猫,狗)

    写法:class 类名:

         属性

         方法

   类的命名: 首字母大写,以大小写分割单词,不使用下划线。

   定义一个类(如下图):

  

   

 

 

  • 对象:具体的某一事物(张三,楼下小黑)

      万物皆对象

  属性:用来描述操作对象,属性名首字母小写,以大写字母分割单词

  创建对象属性(如下图):

  

然后来了解面向对象的三大特征:

  • 继承

     ----单继承

     ----多继承

  • 封装
  • 多态

 1.继承:是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类有称为基类或超类,新建的类称为子类或派生类

python中的继承分为单继承和多继承(如下图):

 

查看继承:

SubClass1.__bases__    ----------------__base__只查看从到右继承的第一个子类,__bases__查看所有继承的父类

注意:如果没有指定父类,python的类会默认继承object类,object是所有python的父类,它提供了一些常见的方法(如__str__)的实现。

 

2.封装

python的三种封装写法:

  • 常规写法:

    属性私有 _属性名称

  • 调用全局函数property,将set和get传递过去:

    对象.属性名称

 

 

 

  • 使用annotation(注释)property;来二次封装(注意:此处存在一个伪重载):

函数的重载(overload):

  • 函数名称相同,参数的个数或类型不同

    注:python没有函数重载,因为python是弱数据类型语言

函数的重写/覆盖(override):

  • 是指面向对象的继承中,子类继承了父类的方法,但是不满足子类的需求,从而重新覆盖父类的现象

 

3.多态

  • 父类引用指向子类实例的现象,叫做多态

     注意:python 是弱数据语言,弱数据类型语言天生支持多态

        

 

 

 

 

 

      

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!