Python是一種面向?qū)ο蟮木幊陶Z言,支持繼承特性。在Python中,繼承有三種類型:單一繼承、多重繼承和抽象基類繼承。
單一繼承是指一個(gè)類只繼承一個(gè)父類,例如:
class Animal(): def __init__(self, name): self.name = name def eat(self): print(f"{self.name} is eating.") class Dog(Animal): def bark(self): print(f"{self.name} is barking.")
上面的代碼中,Dog繼承自Animal類,即Dog是Animal類的子類。Dog除了擁有自己定義的方法bark之外,還具有Animal類中定義的方法eat。
多重繼承是指一個(gè)類同時(shí)繼承了多個(gè)父類,例如:
class Flyer(): def fly(self): print(f"{self.name} is flying.") class Swimmer(): def swim(self): print(f"{self.name} is swimming.") class Duck(Flyer, Swimmer): def quack(self): print(f"{self.name} is quacking.")
上面的代碼中,Duck繼承自Flyer類和Swimmer類,即Duck是Flyer類和Swimmer類的子類。Duck不僅擁有自己定義的方法quack,還具有Flyer類和Swimmer類中定義的方法fly和swim。
抽象基類繼承是指子類必須實(shí)現(xiàn)基類中所有抽象方法才能正常工作的繼承方式,例如:
from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass class Circle(Shape): def __init__(self, r): self.r = r def area(self): return 3.14 * self.r * self.r
上面的代碼中,Shape是一個(gè)抽象基類,定義了一個(gè)抽象方法area。Circle繼承自Shape類,但是必須實(shí)現(xiàn)Shape類中定義的area方法才能正常工作。這樣做可以確保子類實(shí)現(xiàn)了基類中定義的方法。