、基本概念
面向对象三要素之一:继承inheritance
继承表达式:class Cat(Anaimal),继承可以让子类从父类获取特征(属性和方法)
父类:Anaimal 就是Cat的父类,也称为基类,超类
子类:Cat就是Anaimal的子类,也称为派生类
2、定义
格式如下:
class 子类名(父类名): 语句块
如果类定义时,没有基类列表,等同于继承自object,在Python3中,object类是所有对象的根基类
只在python3 中是可以等价的,python2中不同的
class A: pass 等同于 class A(object): pass
注意:python支持多继承,继承也可以多级。
查看继承的特殊属性和方法有:
| 特殊属性和方法 | 含义 | 示例 |
| __base__ | 类的基类 | |
| __bases__ | 类的基类元组 | |
| __mor__ | 显示方法查找顺序,基类的元组 | |
| mro()方法 | 同上,返回列表 | |
| __subclassedd__() | 类的子类列表 |
print(Anaimal.__subclasses__()) |
3、继承中的访问控制:
举例:
1 class Anaimal: 2 __COUNT = 100 3 HEIGHT = 0 4 5 def __init__(self, age, weight, height): 6 self.__COUNT += 1 7 self.age = age 8 self.__weight = weight 9 self.HEIGHT = height 10 11 def eat(self): 12 print('{} eat'.format(self.__class__.__name__)) 13 14 def __getweight(self): 15 print(self.__weight) 16 17 @classmethod 18 def showcount1(cls): 19 print(cls) 20 print(cls.__dict__) 21 print(cls.__COUNT) 22 23 @classmethod 24 def __showcount2(cls): 25 print(cls.__COUNT) 26 27 def showcount3(self): 28 print(self.__dict__) 29 print(self.__COUNT)