定义一个抽象类Shape,在抽象类Shape中定义求面积getArea()和周长getPerimeter()的抽象方法。 分别定义继承抽象类Shape的3个子类即Triangle、Rectang

class Shape:
    def __init__(self,areas=0,primeters=0):
       self.areas=areas
       self.Primeters=primeters
    def GetPrimeter(self):
        pass
    def GetArea(self):
       pass
class Triangle(Shape):
    def __init__(self,said1=0,said2=0,said3=0,areas=0,primeters=0):
        super().__init__(areas,primeters)
        self.said1=said1
        self.said2=said2
        self.said3=said3
    def GetPrimeter(self):
        self.Primeters=(self.said1+self.said2+self.said3)
    def GetArea(self):
        s = (self.said1 + self.said2 + self.said3) / 2
        self.areas = ((s * (s - self.said1)) * (s - self.said2) * (s - self.said3))**0.5
class Rectangle(Shape):
    def __init__(self,length=0,width=0,areas=0,primeters=0):
        super().__init__(areas,primeters)
        self.length=length
        self.width=width
    def GetPrimeter(self):
        self.Primeters=(self.length+self.width)*2
    def GetArea(self):
        self.areas=self.length*self.width
class Circle(Shape):
    def __init__(self,r=0,areas=0,primeters=0):
        super().__init__(areas,primeters)
        self.r=r
    def GetPrimeter(self):
        self.Primeters=2*3.14*self.r
    def GetArea(self):
        self.areas=3.14*self.r*self.r
a1=Triangle(3,4,5)
a1.GetPrimeter()
a1.GetArea()
print("三角形的周长为:",a1.Primeters)
print("三角形的面积为:",a1.areas)

a2=Rectangle(4,5)
a2.GetPrimeter()
a2.GetArea()
print("矩形的周长为:",a2.Primeters)
print("矩形的面积为:",a2.areas)

a3=Circle(4)
a3.GetPrimeter()
a3.GetArea()
print("圆的周长为:",a3.Primeters)
print("圆的面积为:",a3.areas)

  • 4
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是添加抽象类Shape的示例代码: ```python from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass @abstractmethod def peri(self): pass ``` 在这个示例,我们使用了Python的abc模块来定义抽象类Shape是一个抽象类,其定义了两个抽象方法area和peri,这两个方法在子类必须被实现。 ### 回答2: Shape是一个抽象类,它是一个通用的形状,其包含抽象方法area和peri。area表示形状的面积,而peri表示形状的周长。 在Shape定义了这两个抽象方法,但没有具体的实现。这是因为不同种的形状有不同的计算方式,无法在Shape具体定义。 例如,对于矩形而言,它的面积可以通过长乘以宽来计算,周长可以通过边长之和乘以2来计算;而对于圆形而言,它的面积可以通过半径的平方乘以π来计算,周长可以通过半径乘以2π来计算。 因此,我们可以在Shape定义这两个抽象方法,让继承Shape的具体形状去实现它们。这样,每个具体的形状只需要实现自己特定的计算方式即可,而无须关心其他形状的计算方法。 通过定义Shape这个抽象类,我们可以统一对不同形状进行操作,而不必关心它们的具体型。这使得代码更加灵活、可扩展,并且符合面向对象的设计原则。 总之,通过添加一个抽象类Shape定义面积周长抽象方法,可以将不同形状的计算方式统一起来,并且使得代码更加具有可扩展性和灵活性。 ### 回答3: Shape是一个抽象类,代表形状这个概念。在Shape定义了两个抽象方法面积area周长peri。 首先,我们知道不同的形状有不同的面积周长的方式,因此将这两个方法定义抽象方法,留给子类来具体实现。 例如,假设有一个矩形Rectangle继承Shape,那么在Rectangle就需要实现area和peri方法。在area方法,可以根据矩形的长和宽来计算面积;在peri方法,可以根据矩形的长和宽来计算周长。同理,如果有其他形状的子类,就可以根据具体的形状来实现这两个方法。 通过将面积周长这两个方法定义Shape抽象类,可以使得这些方法对不同的形状起到统一的作用,实现了代码的复用性和扩展性。同时,将这两个方法定义抽象方法,也保证了子类一定要实现它们,从而充分体现了这两个方法的重要性和实际意义。 总之,通过在抽象类Shape定义抽象方法面积area周长peri,可以为不同形状的子类提供一个统一的标准,同时也保证了这两个方法的实现。这样的设计可以更好地兼顾代码的复用性和扩展性,提高了程序的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值