python super 理解(四)

原文链接

super()单继承可以为做什么呢?

像其他面向对象的语言一样,它允许您在子类中调用超类的方法。这种方法的主要用例是扩展继承方法的功能。

#长方形定义
class Rectangle:
    def __init__(self, length, width):
        self.length = length
        self.width = width

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

    def perimeter(self):
        return 2 * self.length + 2 * self.width

# Here we declare that the Square class inherits from the Rectangle class
#正方形定义
class Square(Rectangle):
    def __init__(self, length):
        super().__init__(length, length)
        
square = Square(4)

print(square.area())

#16
class Cube(Square):
    
    def __init__(self,length):
        super().__init__(length)
    def surface_area(self):
        face_area = super(Square, self).area()
        return face_area * 6

    def volume(self):
        face_area = super(Square, self).area()
        return face_area * self.length
    
    
cube = Cube(3)
print(cube.surface_area())
print(cube.volume(
54
27
posted @ 2022-08-19 22:50  luoganttcc  阅读(7)  评论(0)    收藏  举报