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   ZhangZhihuiAAA  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2023-07-31 Go - go.work, go.mod, go.sum
2023-07-31 Go - installation
2023-07-31 Go - env
2023-07-31 Python - match case
 
点击右上角即可分享
微信分享提示