利用java继承的思想,创建图形、正方形、圆形、三角形这些类,编写上转型程序并计算正方形、圆形和三角形的面积和周长。
时间: 2024-10-14 16:04:02 浏览: 43
在Java中,可以利用继承的特性来创建一个图形类(如Shape),然后让正方形(Square)、圆形(Circle)和三角形(Triangle)这三个类继承自Shape,并分别覆盖或重写父类的方法来计算各自的面积和周长。下面是一个简单的示例:
```java
// 定义一个Shape抽象类
abstract class Shape {
abstract double getArea(); // 计算面积的方法
abstract double getPerimeter(); // 计算周长的方法
}
// 正方形类
class Square extends Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
double getArea() {
return side * side;
}
@Override
double getPerimeter() {
return 4 * side;
}
}
// 圆形类
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * Math.pow(radius, 2);
}
@Override
double getPerimeter() {
return 2 * Math.PI * radius;
}
}
// 三角形类
class Triangle extends Shape {
private double base;
private double height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
@Override
double getArea() {
return 0.5 * base * height;
}
@Override
double getPerimeter() {
// 假设这是一个等腰三角形,只给出一种情况
double sideLength = (base + Math.sqrt(Math.pow(base, 2) - 4 * Math.pow(height, 2))) / 2;
return sideLength * 3;
}
}
public class Main {
public static void main(String[] args) {
Square square = new Square(5);
System.out.println("Square area: " + square.getArea());
System.out.println("Square perimeter: " + square.getPerimeter());
Circle circle = new Circle(7);
System.out.println("Circle area: " + circle.getArea());
System.out.println("Circle perimeter: " + circle.getPerimeter());
Triangle triangle = new Triangle(6, 4);
System.out.println("Triangle area: " + triangle.getArea());
System.out.println("Triangle perimeter: " + triangle.getPerimeter());
}
}
```
在这个例子中,我们首先定义了一个Shape抽象类,它有`getArea()`和`getPerimeter()`两个抽象方法。接着,正方形、圆形和三角形分别实现了这两个方法。在主函数里,我们可以创建每个形状的实例并计算其面积和周长。
阅读全文