色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 繼承和多態(tài)

林子帆2年前7瀏覽0評論

Python是一種常用的編程語言,它支持繼承和多態(tài),這兩個(gè)概念是面向?qū)ο缶幊讨械闹匾拍钪弧?/p>

繼承是面向?qū)ο缶幊讨械囊环N重要概念,它表示一個(gè)類可以繼承另一個(gè)類的特性。通過繼承,一個(gè)類可以擁有另一個(gè)類的屬性和方法,這樣可以減少編寫代碼的時(shí)間和工作量。

下面的代碼演示了如何使用繼承:

class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
dog = Dog("Rufus")
print(dog.name + ": " + dog.speak())
cat = Cat("Whiskers")
print(cat.name + ": " + cat.speak())

上面的代碼定義了一個(gè)Animal類的基類,它包含了一個(gè)name屬性和一個(gè)speak方法,speak方法被設(shè)置為“pass”,表示它沒有具體的實(shí)現(xiàn)。然后定義了Dog和Cat兩個(gè)子類,它們繼承了Animal類的屬性和方法,并分別實(shí)現(xiàn)了自己的speak方法。

接著創(chuàng)建了一個(gè)Dog對象和一個(gè)Cat對象,并調(diào)用它們的名字和speak方法,輸出結(jié)果如下:

Rufus: Woof!
Whiskers: Meow!

可以看到,Dog和Cat兩個(gè)類都繼承了Animal類的name屬性和speak方法,但是它們各自實(shí)現(xiàn)了自己的speak方法,這就是多態(tài)的體現(xiàn)。

多態(tài)是指一個(gè)對象可以表現(xiàn)出多種形態(tài),比如上面的例子中,Animal類的實(shí)例可以被賦值給Dog和Cat類,這是因?yàn)镈og和Cat類都繼承了Animal類的屬性和方法,它們與Animal類有一定的相似性。

下面的代碼演示了多態(tài):

class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
def animal_speak(animal):
print(animal.name + ": " + animal.speak())
dog = Dog("Rufus")
cat = Cat("Whiskers")
animal_speak(dog)
animal_speak(cat)

上面的代碼定義了一個(gè)animal_speak函數(shù),它接受一個(gè)Animal類的實(shí)例作為參數(shù),并調(diào)用它的name屬性和speak方法。然后創(chuàng)建了一個(gè)Dog對象和一個(gè)Cat對象,并分別調(diào)用animal_speak函數(shù),輸出結(jié)果如下:

Rufus: Woof!
Whiskers: Meow!

可以看到,animal_speak函數(shù)接受的是Animal類的實(shí)例,但是它可以處理Dog和Cat類的實(shí)例,因?yàn)樗鼈兌祭^承了Animal類的屬性和方法,這就是多態(tài)的體現(xiàn)。