繼承:**復用的高階抽象
繼承是物件導向程式設計的精髓之一
實現了以類為單位的高抽象級別**復用
繼承是新定義類能夠幾乎完全使用原有類屬性與方法的過程
基類的屬性基本等同於定義在派生類中
派生類可以直接使用基類的類屬性、例項屬性
派生類可以直接使用基類的各種方法
使用基類的類方法和類屬性時,要用基類的類名呼叫
class
democlass
: count=
0def
__init__
(self,name)
: self.name=name
democlass.count+=
1def
getname
(self)
:return self.name
class
humannameclass
(democlass)
:def
printname
(self)
:return
str(democlass.count)
+self.name+
'同志'
#對基類類屬性的使用
dc1=humannameclass(
"老王"
)print
(dc1.getname())
#對基類例項方法的使用
print
(dc1.printname())
#對派生類例項方法的使用
輸出:老王
1老王同志
派生類只能繼承基類的公開屬性和方法
派生類不能繼承基類的私有屬性和私有方法
object是python最基礎類的名字,不建議翻譯理解
所有類定義時預設繼承object類
保留屬性和方法本質上是object類的屬性和方法
屬性過載:派生類定義並使用了用基類相同名稱的屬性
方法過載:派生類定義並使用了與基類相同名稱的方法
class
democlass
: count=
0def
__init__
(self,name)
: self.name=name
democlass.count+=
1class
humannameclass
(democlass)
: count=
99def
__init__
(self,name)
: self.name=name
humannameclass.count-=
1def
printcount
(self)
:return
str(humannameclass.count)
+self.name
dc1=humannameclass(
"老王"
)print
(dc1.printcount())
輸出:98老王
分為完全過載和增量過載,完全過載就是在派生類中重寫同名方法。
增量過載用super()方法
class
democlass
: count=
0def
__init__
(self,name)
: self.name=name
democlass.count+=
1def
printcount
(self)
:return
str(democlass.count)
+self.name
class
humannameclass
(democlass)
:def
__init__
(self,name)
: self.name=name
defprintcount
(self)
:return
super()
.printcount()+
"同志"
dc1=humannameclass(
"老王"
)print
(dc1.printcount())
輸出:0老王同志
class
democlass
:def
__init__
(self,name)
: self.name=name
defprintcount
(self)
:return self.name
class
nameclass
:def
__init__
(self,title)
: self.nick=title
defprintcount
(self)
:return self.nick+
'同志'
class
humannameclass
(nameclass,democlass)
:#繼承是從左至右
pass
dc1=humannameclass(
"老王"
)print
(dc1.printcount())
輸出:老王同志
class
democlass
:def
__init__
(self,name)
: self.name=name
defprintcount
(self)
:return self.name
class
nameclass
:def
__init__
(self,title)
: self.nick=title
defprintcount
(self)
:return self.nick+
'同志'
class
humannameclass
(democlass,nameclass)
:#繼承是從左至右
defprintcount
(self)
:return
super()
.printcount()+
"你好"
dc1=humannameclass(
"老王"
)print
(dc1.printcount())
輸出:老王你好
物件導向之類的繼承
繼承 現實世界中,通過分析多種型別,然後發現有一些共同特徵和一些共同行為 再將這些種類歸納為一種新型別 如 黃色 的人 白色 的人 人 黑色 的人 再如 狗 能動,能吃,能叫 旺旺 能睡 貓 能動,能吃,能叫 喵喵 能睡 都是動物 計算機語言中 應該先編寫父型別再編寫子型別,然後再有物件 如 先編寫...
python物件導向之類,物件
類別,乙個是抽象概念 小a的朋友們 是一些列具備相同特徵和相同行為的物件的集合 就是具體操作的某個事物,具備自己的特徵和行 小a的朋友 小明 類包含一系列物件 物件屬於某個類 在現實中先有物件,再有類 在程式中是,先有類,才能有物件 而在程式中是先有類才能物件,我們必須先告訴計篡機這類的物件有什麼特...
Python中物件導向之類
1.建構函式案例 class complex def init self,real,imag 此處要記得寫引數self self.r real self.i imag print 建構函式被呼叫 x complex 3.0,4.5 print x.r,x.i 2.析構函式 案例class compl...