類的定義函數
class Test(object):對象
def __init__(self, name)繼承
self.name=name接口
class定義類的關鍵字get
Test是類名it
Test後面括號的object是繼承的類,沒有繼承的類就繼承object類,全部類都繼承objectclass
__init__函數是構造函數,函數後面第一個參數必定要填self表明類類自己,後面的參數的用戶初始化時候傳入的參數object
class Animal(object):
def __init__(self):
self.name='animal'
def run(self):
print("animal run")
def eat(self):
print("animal eat")
def getname(self):
print(self.name)
class bird(Animal):
def eat(self):
print("bird eat")
class cat(Animal):
def eat(self):
print("cat eat")
def eat(a):
a.eat()
if __name__ == '__main__':
b = bird()
b.getname()
b.run()
b.eat()
eat(b)
c = cat()
c.getname()
c.run()
c.eat()
eat(c)
animal
animal run
bird eat
bird eat
animal
animal run
cat eat
cat eat構造函數
繼承:引用
bird繼承Animal,就繼承了Animal的run和eat辦法,同類cat類同樣
什麼是多態?
概念:同一操做做用於不一樣的對象,能夠有不一樣的解釋,產生不一樣的執行結果,這就是多態性。簡單的說:就是用基類的引用指向子類的對象。
實例中eat辦法的參數a根據傳入的類型不一樣調用該類型的辦法,多態實現了接口的複用,運行時候根據類型以爲調用
封裝:就是類的數據的值讀取和修改要經過類的函數修改,實例中的b.getname()就是經過封裝的辦法讀取name屬性