python_類繼承例題

少年維特的貓發表於2020-12-20

定義一個基類shape,私有資料為座標點x,y, 由它派生Rectangle類和Circle類,它們都有成員函式GetArea()求面積。派生類Rectangle類有資料:矩形的長和寬;派生類Circle類有資料:圓的半徑。Rectangle類又派生正方形Square類,定義各類並測試。輸入三組資料,分別是矩形的長和寬、圓的半徑、正方形的邊長,輸出三組資料,分別是矩形、圓、正方形的面積。圓周率按3.14計算

輸入描述:
輸入三行
第一行為矩形的長和寬
第二行為圓的半徑
第三行為正方形的邊長

輸出描述:
三行,分別是矩形、圓、正方形的面積

程式碼如下:

class shape:
    def __init__(self,x,y):
        self.x = x
        self.y = y

class Rectangle(shape):
    def __init__(self,x,y):
        super().__init__(x,y)
    def GetArea(self):
        ans1 = self.x*self.y
        print(ans1)

class Square(Rectangle):
    def __init__(self,n):
        self.n = n
    def GetArea(self):
        ans3 = self.n**2
        print(ans3)

class Circle(shape):
    def __init__(self,r):
        self.r = r
    def GetArea(self):
        ans2 = 3.14*self.r**2
        if ans2 - int(ans2) == 0:
            print(int(ans2))
        else:
            print(ans2)
        
a,b = map(int,input().split())
r = int(input())
n =int(input())
a1 = Rectangle(a,b)
a2 = Circle(r)
a3 = Square(n)
a1.GetArea()
a2.GetArea()
a3.GetArea()

相關文章