首頁(yè)常見(jiàn)問(wèn)題正文

Python單繼承和多繼承的區(qū)別是什么?

更新時(shí)間:2023-03-30 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在Python中,類(lèi)可以從一個(gè)或多個(gè)其他類(lèi)中繼承。單繼承意味著一個(gè)類(lèi)只能從一個(gè)類(lèi)繼承屬性和方法,而多繼承意味著一個(gè)類(lèi)可以從多個(gè)類(lèi)繼承屬性和方法。

  以下是單繼承和多繼承的示例代碼:

      1.單繼承

class Animal:
    def __init__(self, name):
        self.name = name
    
    def speak(self):
        pass
    
class Dog(Animal):
    def speak(self):
        return "Woof!"

dog = Dog("Fido")
print(dog.name)
print(dog.speak())

  在這個(gè)例子中,我們定義了一個(gè)Animal類(lèi),它有一個(gè)名稱屬性和一個(gè)speak()方法。然后我們定義了一個(gè) Dog類(lèi),它從Animal類(lèi)繼承,并覆蓋了speak()方法。我們創(chuàng)建一個(gè)名為Fido的Dog對(duì)象,并打印它的名稱和它的 speak()方法的結(jié)果,它應(yīng)該返回 "Woof!"。

1680145723559_Python單繼承和多繼承的區(qū)別是什么.jpg

  2.多繼承

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!"
    
class DogCat(Dog, Cat):
    pass

dogcat = DogCat("Fido")
print(dogcat.name)
print(dogcat.speak())

  在這個(gè)例子中,我們定義了Animal、Dog和Cat類(lèi),它們分別具有名稱屬性和speak()方法。然后我們定義了一個(gè)DogCat類(lèi),它從Dog和Cat類(lèi)繼承。我們創(chuàng)建一個(gè)名為Fido的DogCat對(duì)象,并打印它的名稱和它的speak()方法的結(jié)果,它應(yīng)該返回"Woof!",因?yàn)镈og類(lèi)排在Cat類(lèi)前面。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!