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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!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