MST

星途 面试题库

面试题:Python中抽象类和接口编程的基础应用

请简述Python中如何使用`abc`模块创建抽象类,以及抽象类的作用。并且给出一个简单示例,定义一个抽象类`Shape`,包含抽象方法`area`,然后定义两个子类`Circle`和`Rectangle`继承自`Shape`并实现`area`方法。
10.4万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. 使用abc模块创建抽象类的方法
    • 首先导入abc模块。
    • 定义一个类,继承自abc.ABC
    • 在类中使用@abstractmethod装饰器来定义抽象方法,这些方法只有声明,没有实现。
  2. 抽象类的作用
    • 抽象类不能被实例化,它主要用于为一组子类提供一个通用的基类接口。通过定义抽象方法,强制子类必须实现这些方法,从而保证了子类具有一致的行为。这有助于实现多态性,提高代码的可维护性和扩展性。
  3. 示例代码
from abc import ABC, abstractmethod


class Shape(ABC):
    @abstractmethod
    def area(self):
        pass


class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        import math
        return math.pi * self.radius * self.radius


class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height