ZhangZhihui's Blog  

We have seen that if we have to define a group of classes that have similar features and show common behavior, we can define a base class and then inherit the classes from it. In the derived classes, we have the choice to either use the base class version of a method or override it. There can be scenarios when it does not make sense to implement some methods in the base class. We need to define a method in the base class just to provide a common interface for the derived classes. We do not need such a base class to be instantiated.

 

Most of the time, abstract methods have an empty body in the abstract class. They are there only for defining the common interface, so their body generally contains a pass statement. However, the abstract methods of an abstract class can contain some basic implementation that the concrete subclasses can call by using super. Even if the abstract method is implemented in the abstract base class, the subclass has to override it. The subclass can call the base implementation by using super and then add its own code for any additional tasks.

You can also declare property methods, class methods, or static methods as abstract:

@property
@abstractmethod
def name(self):
  pass

@classmethod
@abstractmethod
def method1(cls):
   pass

@staticmethod
@abstractmethod
def method2():
   pass

 

posted on 2024-07-31 09:30  ZhangZhihuiAAA  阅读(4)  评论(0编辑  收藏  举报