14.3繼承

繼承

# -*-coding:utf-8 -*-
__author__ = 'xiaojiaxin'
__file_name__ = '繼承'

# 繼承
#     類繼承類
# class father:基類,父類
# class son   :派生類,子類
#
# class grandfather:
#     def 下棋(self):
#         pass
#
# class father(grandfather):
#
#     def 籃球(self):
#         pass
#     def 足球(self):
#         pass
#     def 喝酒(self):
#         pass
#     def 電影(self):
#         pass

# class son(father):   #(father)表示這個孩子的父親就是father
#     def 籃球(self):
#         pass
#     def 下棋(self):
#         pass
#
class F:

    def f1(self):
        print("F.f1")
    def f2(self):
        print("F.f2")

class S(F):
    def s1(self):
        print("S.s1")

    def f2(self):   #不再繼承父類的f2方法
        print("S.f2")
"""
obj=S()

obj.s1()
obj.f1()
obj.f2()

"""
'''
obj1=S()
obj1.s1()  #s1中的self是形參,此時代指obj1
obj.f1()   #f1中的self是形參,self永遠指向f1()方法的調用者
'''
class F1:
    def f1(self):
        print("F.f1")
    def f2(self):
        print("F.f2")

class S1(F):
    def s1(self):
        print("S.s1")
    def f2(self):   #下面可以繼續繼承父類方法
        #super(S1,self).f2()  #找到父類,執行父類或者基類中的方法
        F1.f2(self)             #與上句話等價
        print("S.f2")

obj2=S1()

obj2.f2()  #super(S1,self).f2()
# F.f2
# S.f2

# F.f2    #F1.f2(self)
# S.f2

總結:調用父類的方法有兩種方式:
super(S1,self) 推薦
F1.f2(self)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章