设计三角形类,继承图形抽象类,计算三角形面积和周长
时间: 2024-02-15 21:32:34 浏览: 61
```python
from abc import ABC, abstractmethod
import math
class Shape(ABC):
@abstractmethod
def area(self):
pass
@abstractmethod
def perimeter(self):
pass
class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def area(self):
s = (self.a + self.b + self.c) / 2
return math.sqrt(s * (s - self.a) * (s - self.b) * (s - self.c))
def perimeter(self):
return self.a + self.b + self.c
```
使用示例:
```python
t = Triangle(3, 4, 5)
print(t.area())
print(t.perimeter())
```
输出:
```
6.0
12
```
相关问题
JAVA设计三角形类,继承图形抽象类,计算三角形面积和周长
public class Triangle extends Shape {
private double side1;
private double side2;
private double side3;
public Triangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
@Override
public double getArea() {
double p = (side1 + side2 + side3) / 2;
return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
@Override
public double getPerimeter() {
return side1 + side2 + side3;
}
}
设计三角形类,继承图形抽象类,计算三角形面积和周长。
好的,这个问题我可以回答。设计三角形类,可以定义三个私有属性分别表示三角形的三边长,然后实现图形抽象类中定义的计算面积和周长的方法即可。具体实现可以参考以下代码:
```python
class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def area(self):
s = (self.a + self.b + self.c) / 2
return (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5
def perimeter(self):
return self.a + self.b + self.c
```
这个类继承自一个名为Shape的抽象类,其中包含了计算面积和周长的抽象方法。在Triangle类中,我们定义了三个私有属性a、b、c表示三角形的三边长,然后在实现计算面积和周长的方法时,分别使用了海伦公式和周长公式来计算。
阅读全文