java用多态计算三角形和圆的面积和周长实验分析讨论
时间: 2023-09-08 16:07:41 浏览: 99
多态是面向对象编程中的一个重要概念,它允许不同的对象以相同的方式响应同一个消息或方法调用。在计算三角形和圆的面积和周长时,可以使用多态来实现。
首先,创建一个抽象类Shape,它包含两个抽象方法,分别用于计算面积和周长:
```
public abstract class Shape {
public abstract double getArea();
public abstract double getPerimeter();
}
```
接下来,创建两个子类Triangle和Circle,它们分别继承Shape类并实现其抽象方法:
```
public class Triangle extends Shape {
private double a, b, c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double getArea() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
public double getPerimeter() {
return a + b + c;
}
}
public class Circle extends Shape {
private double r;
public Circle(double r) {
this.r = r;
}
public double getArea() {
return Math.PI * r * r;
}
public double getPerimeter() {
return 2 * Math.PI * r;
}
}
```
现在,可以用多态来计算三角形和圆的面积和周长。例如:
```
Shape s1 = new Triangle(3, 4, 5);
System.out.println("Triangle area: " + s1.getArea());
System.out.println("Triangle perimeter: " + s1.getPerimeter());
Shape s2 = new Circle(2);
System.out.println("Circle area: " + s2.getArea());
System.out.println("Circle perimeter: " + s2.getPerimeter());
```
在这个例子中,s1和s2都是Shape类型的变量,但它们分别指向Triangle和Circle对象。当调用s1和s2的getArea和getPerimeter方法时,实际上会调用Triangle和Circle类中的对应方法,从而实现了多态。
总的来说,使用多态可以让代码更加灵活和可扩展,使得我们可以方便地处理不同类型的对象并以相同的方式调用它们的方法。
阅读全文