利用多态性创建一个图形类,并且编程序求正方形,三角形和圆的面积,要求java程序
时间: 2024-10-21 11:07:57 浏览: 49
西南科技大学Java程序设计与实践 实验三 类的继承与多态的应用
5星 · 资源好评率100%
在Java中,我们可以利用多态性和抽象类或接口来创建一个图形类库,每个具体的形状如正方形、三角形和圆都将继承自一个抽象的图形类或者实现一个图形接口。这里是一个简单的例子:
首先,我们创建一个`Shape`接口(或抽象类),它包含计算面积的方法:
```java
// Shape接口或抽象类
public interface Shape {
double getArea();
}
```
然后,为正方形、三角形和圆形分别创建实现类:
```java
// 正方形类
public class Square implements Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double getArea() {
return side * side;
}
}
// 三角形类
public class Triangle implements Shape {
private double base, height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
@Override
public double getArea() {
return 0.5 * base * height;
}
}
// 圆形类
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
```
现在可以编写一个主函数,用于计算并打印各种图形的面积,利用多态性动态地选择正确的面积计算方法:
```java
public class Main {
public static void main(String[] args) {
Shape square = new Square(4);
Shape triangle = new Triangle(3, 2);
Shape circle = new Circle(2);
System.out.println("Square area: " + square.getArea());
System.out.println("Triangle area: " + triangle.getArea());
System.out.println("Circle area: " + circle.getArea());
}
}
```
在这个示例中,虽然`square`, `triangle` 和 `circle` 的类型都是 `Shape`,但我们可以在运行时确定它们各自的实际类型,从而调用正确的`getArea()`方法。
阅读全文