MST

星途 面试题库

面试题:JavaScript访问器属性与继承中的应用

创建一个父类`Shape`,包含一个私有属性`_area`和用于获取面积的访问器属性`area`。然后创建一个子类`Circle`继承自`Shape`,`Circle`类有一个私有属性`_radius`,通过访问器属性实现对`_radius`的读写,并根据`_radius`计算并更新`_area`的值。请给出完整的代码实现。
45.5万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
class Shape:
    def __init__(self):
        self._area = 0

    @property
    def area(self):
        return self._area


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

    @property
    def radius(self):
        return self._radius

    @radius.setter
    def radius(self, value):
        if value >= 0:
            self._radius = value
            self._area = 3.14 * self._radius ** 2
        else:
            raise ValueError("Radius must be non - negative")