Может ли подкласс Удалить Свойства из родительского класса и как это сделать ?
## the first example class quadriLateral: def __init__(self, a, b, c, d): self.side1=a self.side2=b self.side3=c self.side4=d def perimeter(self): p=self.side1 + self.side2 + self.side3 + self.side4 print("perimeter=",p) class rectangle(quadriLateral): def __init__(self, a, b): super().__init__(a, b, a, b) class square(rectangle): def __init__(self, a): super().__init__(a, a) def area(self): a=pow(self.side1, 2) print('Area of Square: ', a) ## ############### ## the second example class TwoDObject: def __init__(self,x:float=0,y:float=0): self.x = x self.y = y def move(self,xchange:float=0,ychange:float=0): self.x = self.x + xchange self.y = self.y + ychange def area(self): return 0 class Circle(TwoDObject): def __init__(self,radius:float=1 , x:float=0, y:float=0): self.radius = radius super().__init__(x,y) def area(self): return (self.radius*self.radius * 3.14) def size_change(self,percent:float): self.radius = self.radius * (percent/100)
Что я уже пробовал:
как я знаю, подкласс может только добавлять функциональность и свойства к родительскому классу, но не может удалить их.
во втором примере (класс TwoDObject и sub.Cl. Circle) круг добавляет свойства к суперклассу (TWoD.) (он добавляет свойство radius), и для меня это нормально.
в то время как в первом примере и то,что я нахожу странным ( четырехугольник и прямоугольник), прямоугольник удаляет свойства из суперкласса (c, d удаляются и имеют только a и b), а квадрат удаляет 3 атрибута.
Мой вопрос заключается в том, как класс может удалить атрибуты из родительского класса и как это сделать?