在Python中,可以通过在父类中定义一个方法,并在方法前加上@abstractmethod
装饰器来创建一个虚方法。虚方法是一种需要子类实现的抽象方法,父类不能直接调用虚方法。
以下是一个示例:
from abc import ABC, abstractmethod
class MyBaseClass(ABC):
@abstractmethod
def my_virtual_method(self):
pass
class MySubClass(MyBaseClass):
def my_virtual_method(self):
print("子类实现了虚方法")
# 创建子类实例并调用虚方法
obj = MySubClass()
obj.my_virtual_method()
在上述示例中,MyBaseClass
是一个包含虚方法的抽象基类。其中的my_virtual_method
方法被加上了@abstractmethod
装饰器,表示这个方法是一个虚方法,需要在子类中进行具体实现。
MySubClass
继承自MyBaseClass
,并实现了虚方法my_virtual_method
。通过创建MySubClass
的实例并调用my_virtual_method
,就可以执行子类中的具体实现。
如果在子类中没有实现虚方法,那么在创建子类实例并调用虚方法时,会引发TypeError
异常。