# 定义一个父类 # Python 中所有的类都默认继承object的基类 class A(object): def __init__(self): self.num = 1 def print_info(self): print(self.num) # 定义一个子类 # 在B后面的括号中写A 说明A是 B的父类 class B(A): pass if __name__ == '__main__': # 实列化一个B的对象 b = B() # b调用父类的方法 b.print_info() # 子类的对象调用父类的属性 print(b.num)
2.单独继承
# 定义一个师傅类 class Master(object): def __init__(self): self.kougfu = '[大师煎饼果子配方]' def make_cake(self): print(f'运用{self.kougfu}制作煎饼果子') # 定义一个徒弟类 只有一对父子关系 class Prentice(Master): pass if __name__ == '__main__': # 创建一徒弟的类 rpp=Prentice() # 使用徒弟类的对象去 使用kongu print(rpp.kougfu) # 使用徒弟类的对象去调用 大师类的方法 rpp.make_cake()
3.多继承
# 定义一个师傅类 class Master(object): def __init__(self): self.kougfu = '[大师煎饼果子配方]' def make_cake(self): print(f'运用{self.kougfu}制作煎饼果子') # 定义一个学校类 class School(object): def __init__(self): self.kougfu = '[连锁品牌的煎饼果子]' def make_cake(self): print(f'运用{self.kougfu}制作煎饼果子') # 定义一个徒弟类 一个类有两个 甚至多个父类 叫多继承 # 寻找父类的方法会找第一个父类 class Prentice(School, Master, ): pass if __name__ == '__main__': # 创建一徒弟的类 rpp = Prentice() # 使用徒弟类的对象去 使用kongfu print(rpp.kougfu) # 使用徒弟类的对象去调用 大师类的方法 rpp.make_cake()
4.子类重写父类的属性方法
# 定义一个师傅类 class Master(object): def __init__(self): self.kongfu = '[大师煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') # 定义一个学校类 class School(object): def __init__(self): self.kongfu = '[连锁品牌的煎饼果子]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') # 定义一个徒弟类 一个类有两个 甚至多个父类 叫多继承 # 寻找父类的方法会找第一个父类(超类) class Prentice(School, Master): # 定义子类自己的init函数 不会触发父类的init def __init__(self): self.kongfu = '[独创煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子配方') if __name__ == '__main__': # 创建一徒弟的类 rpp = Prentice() # 使用的是子类自己的配方 print(rpp.kongfu) # 用的是子类自己的方法 rpp.make_cake()