编程一个java程序,定义Shape抽象类,包含私有属性color,创建构造器为color赋值;包含计算周长的方法celPerimeter();定义子类Triangle,包含三边;定义子类Circle,包含半径radius;子类分别实现父类的计算周长功能。
时间: 2024-05-11 17:20:05 浏览: 139
Java实现运用上转型对象抽象方法计算圆形或圆锥的面积、周长等成员变量
下面是一个简单的 Java 程序,实现了上述要求:
```java
public abstract class Shape {
private String color;
public Shape(String color) {
this.color = color;
}
public String getColor() {
return color;
}
public abstract double calcPerimeter();
}
public class Triangle extends Shape {
private double a;
private double b;
private double c;
public Triangle(String color, double a, double b, double c) {
super(color);
this.a = a;
this.b = b;
this.c = c;
}
public double calcPerimeter() {
return a + b + c;
}
}
public class Circle extends Shape {
private double radius;
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
public double calcPerimeter() {
return 2 * Math.PI * radius;
}
}
```
在上面的代码中,我们首先定义了一个抽象类 `Shape`,其中包含私有属性 `color`,并在构造器中为其赋值。此外,我们还定义了一个抽象方法 `calcPerimeter()`,用于计算周长。
接下来,我们定义了两个子类 `Triangle` 和 `Circle`,分别实现了父类的计算周长功能。在 `Triangle` 类中,我们包含了三个边长属性 `a`、`b` 和 `c`,在构造器中对其进行赋值,并在 `calcPerimeter()` 方法中计算周长。在 `Circle` 类中,我们包含了一个半径属性 `radius`,在构造器中对其进行赋值,并在 `calcPerimeter()` 方法中计算周长。
最后,我们可以通过以下代码来测试我们的程序:
```java
public class Main {
public static void main(String[] args) {
Shape triangle = new Triangle("red", 3, 4, 5);
System.out.println("Triangle color: " + triangle.getColor());
System.out.println("Triangle perimeter: " + triangle.calcPerimeter());
Shape circle = new Circle("blue", 5);
System.out.println("Circle color: " + circle.getColor());
System.out.println("Circle perimeter: " + circle.calcPerimeter());
}
}
```
在上面的代码中,我们创建了一个红色的三角形和一个蓝色的圆形,并分别输出了它们的颜色和周长。
阅读全文