這裏寫目錄標題
一、類的繼承
(1)要點:
1、在繼承關係中,已有的、設計好的的類稱爲父類或基類,新設計的類稱爲子類或派生類。
2、派生類可以繼承父類的公有成員,但是不能繼承其私有成員。
3、在繼承中基類的構造函數[init()方法]不會被自動調用,它需要在其派生類的構造中親自專門調用。
4、如果需要在派生類中調用基類的方法是,通過“基類名。方法名()”的方式來實現,需要帶上基類的類名前綴且需要帶上self參數變量。
(2)代碼演示:
class Parent: #定義父類
a=100
def __init__(self):
print("調用父類構造函數")
def method(self):
print("調用父類方法")
def set(self,attr): #修改類屬性的值
Parent.a=attr #由於是類屬性,所以不用self.a
def get(self):
print("父類屬性:",Parent.a)
class Child(Parent): #定義子類
def __init__(self):
print("調用子類構造函數")
def childmethod(self):
print("調用子類方法")
c=Child() #實例化子類
c.childmethod() #調用子類的方法
c.method() #調用父類方法
c.set(200) #調用父類方法
c.get() #調用父類方法
結果:
調用子類構造函數
調用子類方法
調用父類方法
父類屬性: 200
二、類的多繼承
定義
:
Python的類可以繼承多個基類。繼承的基類列表跟在類名之後。類的多幾次語法:
class ClassName(ParentClasee1[,ParentClasee2,...]):
派生類成員
三、方法重寫
(1)定義:
重寫必須出現在繼承中。
它是指當派生類繼承了基類的方法之後,如果基類方法的功能不能滿足需求,需要對基類中的某些方法進行修改,可以在派生類重寫基類的方法,這就是重寫。
(2)代碼:
class Parent: #定義父類
def method(self):
print("父類方法")
class Child(Parent): #定義子類
def method(self):
print("子類方法")
c=Child()
c.method()
結果:
子類方法
(3)補充:
子類的method()覆蓋了父類的method()。
四、多態
(1)isinstance()的用法
判斷一個變量是否是某個類型。
代碼演示:
class Parent:
def method(self):
pass
class Child:
def method(self):
pass
a=Parent()
b=Child()
if isinstance(a,Parent):
print("True")
if isinstance(b,Child):
print("True")
結果:
True
True
(2)多態的簡單使用
注意:
1、多態是方法的多態,屬性沒有多態。
2、多態的存在有2個必要條件:繼承、方法重寫。
簡單使用:
在繼承關係中,如果一個實例的數據類型是某個子類,那它的數據類型也可以被看做是父類,但是反過來就不行了。
代碼演示:
class Parent:
def method(self):
print("父")
class Child(Parent):
def method(self):
print("child")
class son(Parent):
def method(self):
print("son")
class son2(Parent):
def method(self):
print("son2")
def Human(m):
if isinstance(m,Parent):
m.method() #多態,一個方法調用,根據對象不同調用不同的方法!
else:
print("不是")
Human(Child())
Human(son())
Human(son2())
a=Parent()
if isinstance(a,Child):
print("父類的實例的數據類型也可以被看作子類的")
else:
print("父類的實例的數據類型不可以被看作子類的")
結果:
child
son
son2
父類的實例的數據類型不可以被看作子類的
五、運算符重載
(1)知識點:
(2)代碼演示:
class Person:
def __init__(self,name):
self.name=name
def __add__(self,other):
if isinstance(other,Person):
return "{}+{}".format(self.name,other.name)
else:
return "不是同類對象,不能相加"
P1=Person("小明")
P2=Person("小紅")
x=P1+P2 #加法運算會調用我們寫的__add__()函數
print(x)
結果:
小明+小紅
補充:
我總結我所有python筆記於一篇博客裏:
點擊即可進入Python學習筆記大總結(我把我所有python筆記做了總結和學習順序,點擊即可進入相關博客。希望可以便於你們閱讀)