用java2. 编写程序,创建一个描述图形的类Shape,其中包含面积、周长等属性,以及计算面积、计算周长、输出信息等方法,对1中创建的类进行修改,使三角形类和圆形类继承Shape类,在主类中测试这些类的使用,体现出多态性。
时间: 2023-06-12 12:06:43 浏览: 94
java用接口、多态、继承、类计算三角形和矩形周长及面积的方法
5星 · 资源好评率100%
以下是 Java 代码实现:
```java
public class Shape {
protected double area;
protected double perimeter;
public void calculateArea() {}
public void calculatePerimeter() {}
public void displayInfo() {}
}
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public void calculateArea() {
area = Math.PI * radius * radius;
}
@Override
public void calculatePerimeter() {
perimeter = 2 * Math.PI * radius;
}
@Override
public void displayInfo() {
System.out.println("The circle has a radius of " + radius + ", an area of " + area + ", and a perimeter of " + perimeter + ".");
}
}
public class Triangle extends Shape {
private double side1, side2, side3;
public Triangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
@Override
public void calculateArea() {
double s = (side1 + side2 + side3) / 2;
area = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
@Override
public void calculatePerimeter() {
perimeter = side1 + side2 + side3;
}
@Override
public void displayInfo() {
System.out.println("The triangle has sides of " + side1 + ", " + side2 + ", and " + side3 + ", an area of " + area + ", and a perimeter of " + perimeter + ".");
}
}
public class Main {
public static void main(String[] args) {
Shape s1 = new Circle(5.0);
Shape s2 = new Triangle(3.0, 4.0, 5.0);
s1.calculateArea();
s1.calculatePerimeter();
s1.displayInfo();
s2.calculateArea();
s2.calculatePerimeter();
s2.displayInfo();
}
}
```
在上述代码中,我们定义了一个 `Shape` 类,其中包含了面积、周长等属性,以及计算面积、计算周长、输出信息等方法。然后,我们创建了两个子类 `Circle` 和 `Triangle`,分别表示圆形和三角形,这两个子类都继承自 `Shape` 类,并重写了父类中的方法来计算自己的面积和周长,并输出自己的信息。在主方法中,我们分别创建了一个圆形对象和一个三角形对象,并调用它们的方法来计算面积、周长和输出信息,体现出了多态性的特点。
阅读全文