编写JAVA写程序,设计三个shape类型的子类,分别是圆,矩形,三角形。利用重载函数实现对以上三个形状的周长和面积的计算函数名类名可以自定义
时间: 2024-12-29 22:34:16 浏览: 12
在Java中,我们可以创建一个名为`Shape`的抽象类作为父类,并为其添加两个抽象方法`getPerimeter()`和`getArea()`,这两个方法分别用于返回形状的周长和面积。然后,我们可以创建三个具体的子类,如`Circle`, `Rectangle`, 和 `Triangle`,每个子类都需重写这两个方法以提供特定形状的周长和面积计算。
```java
// Shape抽象类
abstract class Shape {
abstract double getPerimeter();
abstract double getArea();
}
// 圆形子类 Circle
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
}
// 矩形子类 Rectangle
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double getPerimeter() {
return 2 * (width + height);
}
@Override
double getArea() {
return width * height;
}
}
// 三角形子类 Triangle
class Triangle extends Shape {
private double base;
private double height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
@Override
double getPerimeter() {
// 实际上需要知道三边长度才能准确计算,这里假设已知,如等边三角形
return base + base + Math.sqrt(Math.pow(base / 2, 2) + Math.pow(height, 2));
}
@Override
double getArea() {
return 0.5 * base * height;
}
}
```
在这个例子中,你可以通过创建这三个形状的实例并调用它们的`getPerimeter()`和`getArea()`方法来获取不同形状的周长和面积,实现了方法的重载。
阅读全文