首先创建一个类家族,其中抽象类几何图形类geometricobject为父类,圆类circle和矩形类rectangle为子类。几何图形类geometricobject中定义保护型字符串变量color,表示图形的颜色;该类要具备构造方法和两个抽象方法findarea和findperimeter,抽象方法findarea求图形面积,抽象方法findperimeter求图形周长。 (2)circle类和rectangle类是geometricobject类的子类,其中应实现父类的抽象方法。 (3)程序主方法中创建两个几何对象:一个圆和一个矩形,并用geometricobject类的引用变量引用他们,调用抽象方法。Java
时间: 2024-03-25 10:37:28 浏览: 74
可以按照以下Java代码实现这个类家族:
```Java
// 定义几何图形类
abstract class GeometricObject {
protected String color;
public GeometricObject(String color) {
this.color = color;
}
public abstract double findArea();
public abstract double findPerimeter();
}
// 定义圆类
class Circle extends GeometricObject {
private double radius;
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
public double findArea() {
return 3.14 * radius * radius;
}
public double findPerimeter() {
return 2 * 3.14 * radius;
}
}
// 定义矩形类
class Rectangle extends GeometricObject {
private double width;
private double height;
public Rectangle(String color, double width, double height) {
super(color);
this.width = width;
this.height = height;
}
public double findArea() {
return width * height;
}
public double findPerimeter() {
return 2 * (width + height);
}
}
// 主程序
public class Main {
public static void main(String[] args) {
// 创建圆和矩形对象
GeometricObject circle = new Circle("red", 5);
GeometricObject rectangle = new Rectangle("blue", 3, 4);
// 使用父类引用变量调用子类的方法
GeometricObject geometricObj1 = circle;
GeometricObject geometricObj2 = rectangle;
System.out.println(geometricObj1.findArea());
System.out.println(geometricObj1.findPerimeter());
System.out.println(geometricObj2.findArea());
System.out.println(geometricObj2.findPerimeter());
}
}
```
以上代码中,我们首先定义了一个抽象类`GeometricObject`作为所有几何图形类的父类,其中包含了一个保护型字符串变量`color`和两个抽象方法`findArea`和`findPerimeter`。然后我们定义了圆类和矩形类,分别继承了父类的属性和方法,并重写了父类的两个抽象方法。最后,在主程序中创建了圆和矩形对象,并使用父类引用变量调用子类的方法。
阅读全文