类的继承之多层继承
#子类创建的实例可调用所有层级父类的属性和方法。
#各级实例和各级类间的关系:
子类创建的实例,同时属于父类;
父类创建的实例,不属于子类;
所有实例,都属于根类Object。
类的继承之多重继承
#一个类,可以同时继承多个类,语法为class A(B,C,D):
#“就近原则”:和子类更相关的父类会放在更左侧,会先在左侧的父类中找,找不到才会去右侧的父类找
多层继承与多重继承比较
多层继承 多重继承
格式
classB(A):
classC(B)
classA(B,C,D)
作用 类在纵向上的深度拓展 类在横向上的宽度拓展
特点
子类创建的实例,可调用所有层级的父
类的属性和方法
就近原则:在子类调用属性和方法时,优
先考虑靠近子类(即靠左)的父类
2)类的定制
新增代码
重写代码
#在子类中,对父类代码的修改
1 classBook:
2 def__init__(self,name,author,comment,state=0):
3 self.name=name
4 self.author=author
5 self.comment=comment
6 self.state=state
7
8 #创建一个Book类的子类FictionBook
9
10 classFictionBook(Book):
11 def__init__(self,name,author,comment,state=0,type='虚构类'):
12 Book.__init__(self,name,author,comment,state=0)
13 self.type=type
14
15 def__str__(self):
16 status='未借出'
17 ifself.state==1:
18 status='已借出'
19 return'类型:%s名称:《%s》作者:%s推荐语:%s\n状态:%s'%(self.type,self.name,self.author,s
elf.comment,status)
20
21
22 book=FictionBook('囚鸟','冯内古特','我们都是受困于时代的囚鸟')
23 print(book)