用java编写抽象类的方法定义基本几何图形的基类(Shape),然后在 Shape类中定义抽象方法面积的方法getArea() 及边长getLength()的抽象方法 用定义接口类的方法定义基本几何图形的基类(ShapeI),然后在 ShapeI类中定义抽象方法面积的方法getArea() 及边长getLength()的抽象方法 然后定义Shape的派生类Circle(圆),Square(正方形)和Triangle(三角形)。要求通过方法覆盖来计算各种图形的面积和周长。
时间: 2024-02-28 14:57:20 浏览: 105
Java面向对象(高级)- 抽象类与抽象方法(或abstract关键字)
好的,下面是使用 Java 编写的对应代码实现:
使用抽象类的方法定义基本几何图形的基类 Shape:
```java
public abstract class Shape { // 定义抽象类 Shape
public abstract double getArea(); // 定义抽象方法 getArea()
public abstract double getLength(); // 定义抽象方法 getLength()
}
```
使用接口类的方法定义基本几何图形的基类 ShapeI:
```java
public interface ShapeI { // 定义接口类 ShapeI
double getArea(); // 定义抽象方法 getArea()
double getLength(); // 定义抽象方法 getLength()
}
```
定义 Shape 的派生类 Circle(圆):
```java
public class Circle extends Shape { // 定义 Circle 类继承 Shape 抽象类
private double radius; // 定义圆的半径
public Circle(double radius) {
this.radius = radius; // 初始化半径
}
public double getArea() { // 重写抽象方法 getArea()
return Math.PI * radius * radius; // 计算圆的面积
}
public double getLength() { // 重写抽象方法 getLength()
return 2 * Math.PI * radius; // 计算圆的周长
}
}
```
定义 Shape 的派生类 Square(正方形):
```java
public class Square extends Shape { // 定义 Square 类继承 Shape 抽象类
private double length; // 定义正方形的边长
public Square(double length) {
this.length = length; // 初始化边长
}
public double getArea() { // 重写抽象方法 getArea()
return length * length; // 计算正方形的面积
}
public double getLength() { // 重写抽象方法 getLength()
return 4 * length; // 计算正方形的周长
}
}
```
定义 Shape 的派生类 Triangle(三角形):
```java
public class Triangle extends Shape { // 定义 Triangle 类继承 Shape 抽象类
private double a; // 定义三角形的三边长
private double b;
private double c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double getArea() { // 重写抽象方法 getArea()
double p = (a + b + c) / 2; // 计算半周长
return Math.sqrt(p * (p - a) * (p - b) * (p - c)); // 计算三角形的面积
}
public double getLength() { // 重写抽象方法 getLength()
return a + b + c; // 计算三角形的周长
}
}
```
通过这些代码,我们可以计算出 Circle、Square 和 Triangle 的面积和周长。
阅读全文