1. 程式人生 > >多繼承、多態

多繼承、多態

In eve 多繼承 編程方式 body 新增 intro 定義 obj

1.多繼承

class Base(object):
def test(self):
print("----Base")

class A(Base):
def test(self):
print("-----A")

class B(Base):
def test(self):
print("-----B")

class C(A,B):
pass
#def test(self):
# print("-----C")


c = C()
c.test()

print(C.__mro__)

2.多態
class Dog(object):
def print_self(self):
print("大家好,我是xxxx,希望以後大家多多關照....")

class Xiaotq(Dog):
def print_self(self):
print("hello everybody, 我是你們的老大,我是xxxx")


def introduce(temp):
temp.print_self()


dog1 = Dog()
dog2 = Xiaotq()

introduce(dog1)
introduce(dog2)


繼承可以把父類的所有功能都直接拿過來,這樣就不必重零做起,子類只需要新增自己特有的方法,也可以把父類不適合的方法覆蓋重寫;

有了繼承,才能有多態。在調用類實例方法的時候,盡量把變量視作父類類型,這樣,所有子類類型都可以正常被接收;

舊的方式定義Python類允許不從object類繼承,但這種編程方式已經嚴重不推薦使用。任何時候,如果沒有合適的類可以繼承,就繼承自object類。

多繼承、多態