多型;同乙個事情有多種形態。同樣的方法名,完成不一樣的具體方法的實現
# 如果你的父類方法的功能不能滿足你的需求,你可以在子類重寫你父類的方法:
# 多型
class animal:
"""這是個動物"""
def __init__(self, can_fly=false):
print("呼叫 __init__() 函式當例項化時!")
self.can_fly = can_fly
def fly(self):
if self.can_fly:
print("我可以飛!")
else:
print("我不能飛!")
class bird(animal): #和class animal 對等的寫了兩個類,並沒有繼承關係
"""這是鳥類"""
def fly(self):
print("可以飛得更高!")
bird = bird()
bird.fly() # 可以飛得更高!
#以上叫做過載,
#方法重寫:
#如果你的父類方法的功能不能滿足你的需求,你可以在子類重寫你父類的方法,例項如下:
class parent: # 定義父類
def a(self):
print(『呼叫父類方法』)
class child(parent): # 定義子類
def b(self):
print('呼叫子類方法')
c = child() # 子類例項
c.b() # 子類呼叫重寫方法 --這裡已經把父類覆蓋重寫,執行子類了
super(child, c).a() # 用子類物件呼叫父類已被覆蓋的方法 super,調出父類
「」"
super() 函式是用於呼叫父類(超類)的乙個方法。
super 是用來解決多重繼承問題的,
直接用類名呼叫父類方法在使用單繼承的時候沒問題,
但是如果使用多繼承,會涉及到查詢順序(mro)、重複呼叫(鑽石繼承)等種種問題。
「」"
#登入
class animal:
"""這是乙個動物"""
def __init__(self,name):
self.name=name
def fly(self):
print("我可以飛")
def eat(self):
print("模擬吃的方法")
a=animal("aaa")
a.name()
a.fly() #eat和fly是自己定義的函式名
a.eat() #呼叫的時候不僅可以呼叫a方法,也可以呼叫eat方法,他會自己顯示。
print(a.__doc__)
def reg():
username = input("請輸入使用者名稱[註冊]:")
password = input("請輸入密碼[註冊]:")
if check(username) >= 0:
print("你註冊的使用者名稱已經存在。")
else:
print("恭喜你,使用者名稱。")
print("恭喜你,註冊成功")
def login():
username = input("請輸入使用者名稱[登入]:")
password = input("請輸入密碼[登入]:")
index =check(username)
if index >= 0:
if password[index] == password:
print("恭喜你,登入成功。")
else:
print("抱歉,密碼輸入錯誤。")
else:
print("抱歉,登入使用者名稱不存在。")
def check(username):
for i in range(len(username)):
if username[i] == username:
return i
return -1
username = ['hello', 'woniu', 'good']
password = ['111', '222', '333']
reg()
login()
重寫前奏 繼承和多型
上次說到的過載是指同一類中方法和方法之間的關係,這次向大家介紹的重寫是子不同類中方法和方法的關係 在介紹重寫之前,要先說說繼承和多型 物件的繼承代表了 is a 的關係,a和b可以描述成b是a,就可以稱為b可以繼承a,不能相互顛倒。繼承者是被繼承者的特殊化。在繼承中,子類是派生類,父類是基類。子類不...
Python 封裝 繼承 多型 重寫
一 封裝 1 定義 根據職責將屬性和方法封裝到乙個抽象的類中。就是只能在類的內部訪問,外部訪問屬性或方法會報異常。2 實現 python中封裝很簡單,在屬性或者方法名稱前邊加上兩個下劃線就好。二 繼承 1 定義 指提供了同一類物件共性的處理方法,子類繼承父類共性的東西。有利於 的復用性。三 多型 1...
封裝繼承多型 繼承重寫過載
物件導向三大基本特徵 封裝 繼承 多型 封裝 首先封裝的意思就是將客觀事物封裝成抽象的類,封裝可以看做是乙個保護屏障,將實現細節全都隱藏起來,防止該類的 和資料被外部類定義的 隨機訪問。要訪問該類的 和資料,必須通過嚴格的介面控制。他的優點在於1.良好的封裝能夠減少耦合。2.類的內部結構可以自有修改...