在Python中,可以通過在父類中定義一個(gè)方法,并在方法前加上@abstractmethod
裝飾器來創(chuàng)建一個(gè)虛方法。虛方法是一種需要子類實(shí)現(xiàn)的抽象方法,父類不能直接調(diào)用虛方法。
以下是一個(gè)示例:
from abc import ABC, abstractmethod
class MyBaseClass(ABC):
@abstractmethod
def my_virtual_method(self):
pass
class MySubClass(MyBaseClass):
def my_virtual_method(self):
print("子類實(shí)現(xiàn)了虛方法")
# 創(chuàng)建子類實(shí)例并調(diào)用虛方法
obj = MySubClass()
obj.my_virtual_method()
在上述示例中,MyBaseClass
是一個(gè)包含虛方法的抽象基類。其中的my_virtual_method
方法被加上了@abstractmethod
裝飾器,表示這個(gè)方法是一個(gè)虛方法,需要在子類中進(jìn)行具體實(shí)現(xiàn)。
MySubClass
繼承自MyBaseClass
,并實(shí)現(xiàn)了虛方法my_virtual_method
。通過創(chuàng)建MySubClass
的實(shí)例并調(diào)用my_virtual_method
,就可以執(zhí)行子類中的具體實(shí)現(xiàn)。
如果在子類中沒有實(shí)現(xiàn)虛方法,那么在創(chuàng)建子類實(shí)例并調(diào)用虛方法時(shí),會(huì)引發(fā)TypeError
異常。