面对对象三大特征: 封装、继承、多态
继承:
单继承 、多继承
1.单继承
子类只继承一个父类,在继承时,小括号( )中为 父类
class MasterWorker(object):
def __init__(self):
self.mifang="古典秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class Apprentice(MasterWorker):
pass
t=Apprentice( )
t.make( )
2.多继承:同时继承多个父类, 父类如有 同名属性 和 方法,父类谁在前 输出谁
class MasterWorker(object):
def __init__(self):
self.mifang="古典秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class School(object):
def __init__(self):
self.mifang="现代秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class Apprentice(MasterWorker,School)
pass
t=Apprentice( )
t.make( )
3.查看子类的继承顺序:mro
print(子类名 . __mro__)
4.子类重写父类的同名属性和方法:
class MasterWorker(object):
def __init__(self):
self.mifang="古典秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class School(object):
def __init__(self):
self.mifang="现代秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class Apprentice(School,MasterWorker):
def __init__(self): __init__ 会报黄,但是不会报错
self.mifang="猫氏秘方"
def make_cake(self):
print("按照《%s》制作煎饼果子"%self.mifang)
daomao=Apprentice( )
daomao.make_cake( )
5.子类调用父类同名属性和方法:
格式: 父类名.__init__(self)
class MasterWorker(object):
def __init__(self):
self.mifang="古典秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class School(object):
def __init__(self):
self.mifang="现代秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class TuDi(School,MasterWorker):
def __init__(self): __init__ 会报黄,但是不会报错
self.mifang="猫氏秘方"
def make_cake(self):
print("按照《%s》制作煎饼果子"%self.mifang)
def make_all_cake(self):
"""调用父类同名属性和方法"""
School.__init__(self) 先获取属性
School.make_cake(self)
ShiFu.__init__(self) 先获取属性
ShiFu.make_cake(self)
damao=Apprentice( )
damao.make_all_cake( )
2.多继承: 继承数大于1
class MasterWorker(object):
def __init__(self):
self.mifang="古典秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class School(object):
def __init__(self):
self.mifang="现代秘方"
def make(self):
print("按照<%s>制作了煎饼果子"%self.mifang)
class Apprentice(School,MasterWorker):
def __init__(self): __init__ 会报黄,但是不会报错
self.mifang="猫氏秘方"
def make_cake(self):
print("按照《%s》制作煎饼果子"%self.mifang)
class ApprenticeApprentice(TuDi):
pass
xiaomao=Apprentice( )
xiaomao.make_cake( )