1.继承基本概念
面向对象三大特性:继承,多态,封装
继承是一种创建 新类 的方式,在python中,新建的类可以继承一个或多个父类,而在java中,一般只支持单继承;继承表述类与类之间的关系,是基于抽象的结果,是不同类之间相似的部分,继承表达的是一种 子类 是 父类的概念(而组合是什么有什么)。
继承的相关概念:
父类:又可称为 基类 或者 超类,继承父类的新的类称为 子类 或者 派生类;
派生属性:父类中没有的属性 在子类中出现;
派生方法:父类中没有的方法 在子类中出现;
python继承相关规则:
1.一个类 可以被多个类继承;
2.一个类 可以继承多个父类;(有些语言不支持多继承)
3.只要是子类的对象调用,子类中有的名字一定用子类的,子类中没有才找父类的,如果父类没有报错;
4.如果调用的名字父类 子类都有,则用子类的名字;
5.如果还想用父类的,则要单独调用父类的;
2.单继承
1.继承初识:
使用简单的代码进行说明:
class A:pass # 父类,基类,超类
class B:pass
class AB_son(A,B):pass # 子类,派生类 则:AB_son 继承 A类 和 B类,
class A_son(A):pass # 则:A_son 继承 A类,A类就是它的父类
print(A_son.__bases__) # 使用__bases__方法 查看 A_son 的父类
print(AB_son.__bases__) # 查看 AB_son 的父类
输出结果如下:
2.单继承的例子:
有如下例子:
class Animal(object):
def __init__(self):
print('Animal.__init__')
self.func() # 注意此处的 self.func()
def eat(self):
print('eating...')
def dirnk(self):
print('drink...')
def func(self): # Animal 中的func函数
print('Animal.func')