面向对象

面向对象三大特征:封装、继承、多态

封装

封装的作用

封装操作可以对受访问保护的成员进行功能开放的控制,达到保护数据不被非法访问的目的

定义私有变量语法格式

self.__属性名 = 值

 

 

定义私有方法语法格式

def __方法名(self,形参1,形参2,…):

方法体:

 

 

标准封装语法格式

变量私有化格式:

  self.__属性名 = 值

提供公共的访问器格式:

  def get_属性名(self):

    return self.__属性名

提供公共的修改器格式:

  def set_属性名(self,属性名):

    self.__属性名 = 属性名

 

 

继承

继承概念

继承描述的是一种类间关系,一个类A从另一个类B获取成员信息,称类A继承自类B。

提供成员信息的类称父类(基类),获取成员信息的类称子类(派生类)。

1.2继承的作用

子类可以使用父类的成员(成员变量,成员方法)

1.3继承语法格式

  class 类名(父类名):  

    pass

 

 

1.4获取继承关系图谱

使用Python内置属性__mro__可以查看继承关系

语法格式:类名.__mro__

 

说明:mro即Method Resolution Order方法解析顺序

1.5.注意事项

l 子类可以添加父类没有的成员

l 父类私有成员不可被继承

 

2. 重写

 

2.1重写概念

重写指在子类中定义与父类相同名称的成员方法。

2.2重写的作用

子类对父类的成员方法进行重写后,使用子类对象调用该方法时,将执行子类中重写后的方法

 

 

2.3在子类中访问父类被重写的方法

格式一:

父类名.方法名(对象)

格式二:

super(本类名,对象).方法名()

格式三:(推荐)

super().方法名()

 

 

 

 

3.多继承

3.1多继承概念

一个类同时继承多个类,称为多继承

3.2定义多继承语法格式

class 类名(父类名1,父类名2…):  

  pass

 

 

3.3 多继承关系中访问父类成员冲突

多继承关系中,当多个父类具有同名的成员,子类调时该成员时先调用继承关系中的第一个声明的类的成员。

 

 

 

多态

多态的概念

一个对象具有多种形态,在不同的使用环境中以不同的形态展示其功能,称该对象具有多态特征。

鸭子类型

鸭子类型是一种特殊的调用现象,当对象在语法层面能够满足调用关系,但对象并不具有对应的对象形态,称该对象此时具备鸭子类型

鸭子类型是一种特殊的多态表现形式

注意事项

多态通常发生在继承,重写关系的基础之上。

 

 

未完待续,后面会继续更新

 

posted @ 2019-03-13 22:35  阿磊小哥哥呀  阅读(77)  评论(0)    收藏  举报