3. 多型
封裝,顧名思義就是將內容封裝到某個地方,以後再去呼叫被封裝在某處的內容。
所以,在使用物件導向的封裝特性時,需要:
1). 將內容封裝到某處
2). 從某處呼叫被封裝的內容
1). 通過物件直接呼叫被封裝的內容: 物件.屬性名
2). 通過self間接呼叫被封裝的內容: self.屬性名
3). 通過self間接呼叫被封裝的內容: self.方法名()
class
cat:
def__init__
(self, name, kind)
:print
('正在執行__init__構造方法'
)print
('self:'
, self)
# 封裝: self.name將物件和name屬性封裝/繫結
self.name = name
self.kind = kind
defeat(self)
:print
('cat %s like eating fish.....'
%(self.name)
)# 例項化
fentiao = cat(
"粉條"
,"美短虎斑"
)print
(fentiao.name)
print
(fentiao.kind)
fentiao.eat(
)
執行結果:
正在執行__init__構造方法
self: <__main__.cat object at 0x0000029aba813fd0>
粉條美短虎斑
cat 粉條 like eating fish.....
子類(派生類 derivedclassname)會繼承父類(基類 baseclassname)的屬性和方法。
class
student
:"""父類student"""
def__init__
(self, name, age)
: self.name = name
self.age = age
deflearning
(self)
:print
(f'正在學習'
)class
mathstudent
(student)
:"""mathstudent的父類是student"""
pass
# 例項化
m1 = mathstudent(
"博士",8
)print
(m1.name)
print
(m1.age)
m1.learning(
)
執行結果:博士8
博士正在學習
classd(
object):
defhellod
(self)
:print
('d'
)class
c(d)
:def
helloc
(self)
:print
('c'
)class
b(d)
:def
hellob
(self)
:print
('b'
)class
a(b, c)
:def
helloa
(self)
:print
('a'
)a = a(
)a.helloa(
)a.hellob(
)a.helloc(
)a.hellod(
)
執行結果為:ab
cd
class
parent
:# 定義父類
defmymethod
(self)
:print
('呼叫父類方法'
)class
child
(parent)
:# 定義子類
defmymethod
(self)
:print
('呼叫子類方法'
)c = child(
)# 子類例項
c.mymethod(
)# 子類呼叫重寫方法
super
(child,c)
.mymethod(
)#用子類物件呼叫父類已被覆蓋的方法
執行以上程式輸出結果為:
呼叫子類方法
呼叫父類方法
多型(polymorphism)按字面的意思就是「多種狀態」。在物件導向語言中,介面的多種不同的實現方式即為多型。通俗來說: 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果。
多型的好處就是,當我們需要傳入更多的子類,只需要繼承父類就可以了,而方法既可以直接不重寫(即使用父類的),也可以重寫乙個特有的。這就是多型的意思。呼叫方只管呼叫,不管細節,而當我們新增一種的子類時,只要確保新方法編寫正確,而不用管原來的**。這就是著名的「開閉」原則:
python的三大特性之封裝
隱藏物件的某些屬性和實現的細節,僅僅只對外提供公共訪問的方式。將函式和屬性裝到了乙個非全域性的命名空間。封裝的好處 1 將變化隔離 2 便於使用 3 提高復用性 4 提高安全性 1 將不需要對外提供的內容全部都隱藏起來 2 吧屬性都隱藏,提供公共方法對其訪問 私有變數 不能在類的外面去引用它。它依然...
python類的三大特性 封裝
四 property屬性 封裝 指隱藏物件的屬性和實現細節,不允許外部直接方位物件內部的資訊,僅僅提供公共的訪問方式給外部,實現外部對內部的操作和訪問。封裝的目的 封裝的益處 python中採用雙下劃線開頭的方式將變數設定為私有變數,即 私有變數的特點 classp object def init ...
Python 物件導向三大特性 封裝
封裝,顧名思義就是將內容封裝到某個地方,以後再去呼叫被封裝在某處的內容。封裝重點 1.def init self 構造方法 雖然它是函式形式,但在類中就不叫函式了 叫方法 2.value 私有 隱藏 屬性,只能在類中被呼叫。3.def func self 私有 隱藏 方法,只能在類中被呼叫。示例1 ...