在eclipse-workspace软件上用java语言 设计一个能细分为矩形、角形、肉形和椭圆彦的“图形”类。使用继承将这要图形分类,找出能作为基关部分的共同特征(如换准点)和方法(如画法、初始化)。并看看这些图形是否能进一步划分为子类。
时间: 2024-10-18 09:05:49 浏览: 30
在Eclipse工作空间中设计一个Java程序,我们可以创建一个名为`Shape`的抽象基类,这个基类包含了所有图形共有的特性,例如位置(`x`, `y`)和形状类型。然后,我们将矩形(Rectangle),三角形(Triangle),心形(Circle),和椭圆(Ellipse)作为其子类,每个子类都继承自`Shape`并覆盖或实现一些特定于各自形状的方法。
```java
// Shape抽象基类
abstract class Shape {
protected int x;
protected int y;
// 共享方法
public abstract void draw();
public abstract String getType();
// 共享构造函数
public Shape(int x, int y) {
this.x = x;
this.y = y;
}
// 访问坐标
public int getX() { return x; }
public int getY() { return y; }
// 设置坐标
public void setX(int newX) { x = newX; }
public void setY(int newY) { y = newY; }
}
// 矩形子类
class Rectangle extends Shape {
private int width;
private int height;
public Rectangle(int x, int y, int width, int height) {
super(x, y);
this.width = width;
this.height = height;
}
@Override
public void draw() {
System.out.println("Drawing a rectangle at (" + x + ", " + y + ")");
}
@Override
public String getType() {
return "Rectangle";
}
}
// 三角形子类
class Triangle extends Shape {
private int base;
private int height;
public Triangle(int x, int y, int base, int height) {
super(x, y);
this.base = base;
this.height = height;
}
@Override
public void draw() {
System.out.println("Drawing a triangle at (" + x + ", " + y + ")");
}
@Override
public String getType() {
return "Triangle";
}
}
// 圆形子类
class Circle extends Shape {
private double radius;
public Circle(int x, int y, double radius) {
super(x, y);
this.radius = radius;
}
@Override
public void draw() {
System.out.println("Drawing a circle at (" + x + ", " + y + ")");
}
@Override
public String getType() {
return "Circle";
}
// 椭圆类同理,省略了
}
```
在这个例子中,我们实现了图形的共享特性如位置和通用绘制方法,并针对每个形状的具体需求定义了子类。这些图形可以根据需要进一步细分,比如添加更多属性或方法来描述它们的特性,如颜色、边框等。
阅读全文