Python是一種面向?qū)ο缶幊陶Z(yǔ)言,允許使用繼承來(lái)實(shí)現(xiàn)代碼的重用和重構(gòu)。在Python中,子類可以繼承父類的所有屬性和方法,包括父類的輸出。
class Animal: def __init__(self, name, species): self.name = name self.species = species def make_sound(self): print("The animal makes a sound") class Dog(Animal): def __init__(self, name, breed): super().__init__(name, "dog") self.breed = breed def make_sound(self): print("Woof woof!") class Cat(Animal): def __init__(self, name): super().__init__(name, "cat") def make_sound(self): print("Meow!") my_dog = Dog("Fido", "Golden Retriever") my_cat = Cat("Whiskers") my_dog.make_sound() # Output: "Woof woof!" my_cat.make_sound() # Output: "Meow!"
在這個(gè)例子中,Animal是一個(gè)父類,它定義了名字和物種這兩個(gè)屬性,以及一個(gè)make_sound()方法。Dog和Cat是Animal的子類,它們可以繼承父類的屬性和方法。Dog還有一個(gè)額外的屬性breed。
當(dāng)我們調(diào)用make_sound()方法時(shí),由于Dog和Cat都重寫(xiě)了這個(gè)方法,因此其輸出是不同的。如果我們?cè)贒og或Cat中沒(méi)有重寫(xiě)make_sound()方法,那么它們將繼承父類的make_sound()方法,并輸出"The animal makes a sound"。
繼承父類的輸出是Python中非常強(qiáng)大的一個(gè)特性,它允許我們?cè)谧宇愔惺褂酶割惖墓δ埽⑶铱梢栽诒匾獣r(shí)對(duì)其進(jìn)行自定義。這讓我們的代碼更加靈活和高效。