繼承
# -*-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)