设计一个图形类Shape,包含求面积的area()方法、求周长的perimeter()方法以及设置颜色的setColor(),利用Java多态技术设计其子类Circle(圆形)和Triangle(三角形)类,并分别实现求面积和求周长的方法。
时间: 2024-01-15 21:05:25 浏览: 119
好的,这是一个简单的面向对象编程问题,我们可以设计一个Shape基类,包含面积和周长的方法,以及设置颜色的方法。然后我们可以派生出Circle和Triangle子类,并实现它们的特定方法。
下面是一个可能的解决方案:
```java
public class Shape {
protected String color;
public void setColor(String color) {
this.color = color;
}
public double area() {
return 0.0;
}
public double perimeter() {
return 0.0;
}
}
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double area() {
return Math.PI * radius * radius;
}
public double perimeter() {
return 2 * Math.PI * radius;
}
}
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;
}
public double area() {
double s = (side1 + side2 + side3) / 2;
return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
public double perimeter() {
return side1 + side2 + side3;
}
}
```
现在我们可以创建Circle和Triangle对象,并调用它们的方法:
```java
Circle circle = new Circle(5.0);
circle.setColor("red");
System.out.println("圆形半径:" + circle.radius);
System.out.println("圆形面积:" + circle.area());
System.out.println("圆形周长:" + circle.perimeter());
System.out.println("圆形颜色:" + circle.color);
Triangle triangle = new Triangle(3.0, 4.0, 5.0);
triangle.setColor("blue");
System.out.println("三角形三边长:" + triangle.side1 + ", " + triangle.side2 + ", " + triangle.side3);
System.out.println("三角形面积:" + triangle.area());
System.out.println("三角形周长:" + triangle.perimeter());
System.out.println("三角形颜色:" + triangle.color);
```
输出:
```
圆形半径:5.0
圆形面积:78.53981633974483
圆形周长:31.41592653589793
圆形颜色:red
三角形三边长:3.0, 4.0, 5.0
三角形面积:6.0
三角形周长:12.0
三角形颜色:blue
```
阅读全文