多型的概念指出了物件如何通過他們共同的屬性和動作來操作及訪問,而不需要考慮他們具體的類。
多型表明了動態(又名,執行時)繫結的存在,允許過載及執行時型別確定和驗證。
多型就是類的改變和擴充套件的乙個具體的實現機制
python中的標準型別就是多型概念的乙個很好的示範
classh2o:
def__init__
(self,name,temperature):
self.name=name
self.temperature=temperature
defturn_ice(self):
if self.temperature <0:
print('
[%s]溫度太低結冰了
'%self.name)
elif self.temperature > 0 and self.temperature<100:
print('
[%s]液化成水
'%self.name)
elif self.temperature > 100:
print('
[%s]溫度太高變成了水蒸氣
'%self.name)
class
water(h2o):
pass
class
ice(h2o):
pass
class
steam(h2o):
pass
w1=water('
水',25)
i1=ice('
冰',-20)
s1=steam('
蒸汽',3000)
#不同的類產生例項呼叫基類相同的功能體現出多型
w1.turn_ice()
i1.turn_ice()
s1.turn_ice()
#模擬len()方法
deffunc(obj):
obj.turn_ice()
func(w1)
#w1.turn_ice()
func(i1)#
i1.turn_ice()
是一種思想,封就是把東西隱藏起來,裝就是類定義屬性和方法
真正意義的封裝:明確區分內外,內部的實現邏輯,外部無法知曉,並且為封裝到內部的邏輯提供乙個訪問介面給外部使用
定義類的屬性和方法的過程就是裝的過程
classpeople:
__star='
earth'#
前面加 _ 是一種約定,調的時候是 _ 開頭的,則此屬性不應該在外部被使用,就是隱藏的意思
#__開頭python內部會重新命名成 _people__star,並且可以呼叫到
def__init__
(self,id,name,age,salary):
self.id=id
self.name=name
self.age=age
self.salary=salary
defget_id(self):
print('
我是私有方法啊,我找到的id是[%s]
'%self.id)
#介面函式
defget_star(self):
print(self.__star
)p1=people('
23423423
','alex
',18,100000)
p1.get_id()
p1.get_star()
#earth
物件導向之多型 封裝(初級)
多型的概念指出了物件如何通過他們共同的屬性和動作來操作及訪問,而不需要考慮他們具體的類。多型表明了動態 又名,執行時 繫結的存在,允許過載及執行時型別確定和驗證。多型就是類的改變和擴充套件的乙個具體的實現機制 python中的標準型別就是多型概念的乙個很好的示範 class h2o def init...
物件導向之多型
多型即事物存在的多種形態 要有繼承 要有方法重寫 要有父類引用指向子類物件 1,多型中的成員訪問特點之成員變數 編譯看左邊 父類 執行看左邊 父類 2,多型中的成員訪問特點之成員方法 編譯看左邊 父類 執行看右邊 子類 3,多型中的成員訪問特點之靜態成員方法 編譯看左邊 父類 執行看左邊 父類 總結...
物件導向之多型
多型指的是一類事物有多種形態,多型性是指在不考慮例項型別的情況下使用例項 class animals def run self print running class dog animals def run self print dog is running class pig animals de...