初识继承

'''
继承问题引入:
如果在两个类里面,有大量重复的代码,是否可以写出一个更抽象的类,将两个类重复的地方写在一起(放公共代码)
'''


class Base():#父类写不写括号,默认继承的都是object顶级父类
    def __init__(self):
        print("我是初始化的base")
    def func(self):
        print("我是base")
class A(Base): #括号里面写的父类的名字,A继承Base.
    pass
a = A() #我是初始化的base,实例化时,触发父类初始化的方法.
a.func() #字类继承了父类,我是base



class Father():
    def __init__(self,name,age):
        self.name = name
        self.age = age
class Son(Father):
    def js(self):
        print("我叫%s,我今年%s岁."%(self.name,self.age))
s = Son("露西",27) #字类继承了父类,继承了父类的属性.
s.js()#我叫露西,我今年27岁.

# -------------继承搜索----------------------------------------------
# 访问类的属性与方法,首先会在自己里面去找,如果找不到,转到其父类进行查找,如果再找不到转到其父类的父类中查找
class GrandFather():
    def play(self):
        print("我是爷爷")
class Father(GrandFather):
    def lasr(self):
        print("我是爸爸")
class Son(Father):
    def js(self):
        print("我是儿子")
a = Son()
a.play() #在Son该类中找不到paly方法,于是转到Son的父类Father类中去找,也找不到,于是转到Father的父类Grandfather类中去找.

print(GrandFather.__bases__)#默认继承顶级父类object
print(Father.__bases__)#继承GrandFather-(<class '__main__.GrandFather'>,)
print(Son.__bases__)#继承Father-(<class '__main__.Father'>,)

 

posted @ 2019-03-27 15:46  上古战神  阅读(106)  评论(0编辑  收藏  举报