平面图形planegraphocs是抽象类长方形rectangle和椭圆类eclipse是子类lanegraphics定义如下 属性形状(string类型的shape) 构造方法编写带参数的构造方法和不带参数的构造方法 成员方法 double area() void print() 其中area方法是抽象方法用于计算面积,print方法是非抽象方法,由于输出面积结果
时间: 2024-03-26 07:38:17 浏览: 124
好的,根据您的要求,我为您编写了如下的代码,实现了平面图形、长方形和椭圆的类定义:
```java
// 平面图形类
public abstract class Planegraphics {
protected String shape;
// 带参数构造方法
public Planegraphics(String shape) {
this.shape = shape;
}
// 不带参数构造方法
public Planegraphics() {
this.shape = "";
}
// 抽象方法,用于计算面积
public abstract double area();
// 非抽象方法,用于输出面积结果
public void print() {
System.out.println("这是一个" + shape + ",面积为" + area());
}
}
// 长方形类
public class Rectangle extends Planegraphics {
private double length;
private double width;
// 带参数构造方法
public Rectangle(String shape, double length, double width) {
super(shape);
this.length = length;
this.width = width;
}
// 不带参数构造方法
public Rectangle() {
super("长方形");
this.length = 0;
this.width = 0;
}
// 重写父类的抽象方法,计算长方形的面积
public double area() {
return length * width;
}
}
// 椭圆类
public class Eclipse extends Planegraphics {
private double majorAxis;
private double minorAxis;
// 带参数构造方法
public Eclipse(String shape, double majorAxis, double minorAxis) {
super(shape);
this.majorAxis = majorAxis;
this.minorAxis = minorAxis;
}
// 不带参数构造方法
public Eclipse() {
super("椭圆");
this.majorAxis = 0;
this.minorAxis = 0;
}
// 重写父类的抽象方法,计算椭圆的面积
public double area() {
return Math.PI * majorAxis * minorAxis;
}
}
```
在这份代码中,平面图形类(Planegraphics)被定义为一个抽象类,其中包含了一个形状属性(shape)和两个构造方法(一个带参数,一个不带参数)。此外,还定义了一个抽象方法(area)和一个非抽象方法(print),其中area方法用于计算面积,print方法用于输出面积结果。
长方形类(Rectangle)和椭圆类(Eclipse)都继承自平面图形类,并根据自己的实际情况重写了父类的抽象方法(area)。在这两个子类中,也定义了自己特有的属性(比如长方形的长度和宽度,椭圆的长轴和短轴),并实现了带参数和不带参数的构造方法。
最后,在这份代码中,我们还可以通过调用print方法来输出每个图形的面积结果。
阅读全文