面向对象继承封装多态

保护对象的属性

__del__方法

继承介绍和单继承

在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承足够,如下如所示:

继承实例

多继承

从图中能够看出,所谓多继承,即子类有多个父类,并且具有它们的特征

Python中多继承的格式如下:

重写父类方法和调用父类方法

1. 重写父类方法

所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法

2. 调用父类方法

多态

多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚“鸭子类型”。

所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态

1、Python伪代码实现Java或C#的多态

类属性和实例属性

在了解了类基本的东西之后,下面看一下python中这几个概念的区别

先来谈一下类属性和实例属性

在前面的例子中我们接触到的就是实例属性(对象属性),顾名思义,类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本,这个和C++中类的静态成员变量有点类似。对于公有的类属性,在类外可以通过类对象和实例对象访问

1、类属性

2、实例属性

3、通过实例(对象)去修改类属性

静态方法和类方法

1、类方法

是类对象所拥有的方法,需要用修饰器来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大部分人都习惯以'cls'作为第一个参数的名字,就最好用'cls'了),能够通过实例对象和类对象去访问。

类方法还有一个用途就是可以对类属性进行修改:

2、静态方法

需要通过修饰器来进行修饰,静态方法不需要多定义参数

继承封装多态是面向对象中非常重要的组成部分

务必牢记用法

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180612G0CVF400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券