根据任务描述,在右侧编辑器Begin-End处补充代码,定义五个方法,并编写代码实现方法对应的功能,达到输出要求。
时间: 2024-10-06 21:05:23 浏览: 9
在面向对象编程中,通常会通过定义方法来封装功能并提供统一的接口。假设我们有一个名为`Shape`的基类,它有五个基本操作,分别是绘制形状、计算面积、计算周长、获取颜色和改变颜色。下面是一个简单的示例:
```java
// 基类 Shape
public abstract class Shape {
private String color;
// 构造函数
public Shape(String color) {
this.color = color;
}
// 获取颜色
public String getColor() {
return color;
}
// 改变颜色
public void setColor(String newColor) {
this.color = newColor;
}
// 抽象方法,需要子类实现
public abstract double getArea();
public abstract double getCircumference();
// 定义绘制形状的方法,这里只是一个占位符
public abstract void draw();
}
// 子类 Circle 和 Square 分别实现 Shape 的方法
public class Circle extends Shape {
private double radius;
public Circle(double radius, String color) {
super(color);
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public double getCircumference() {
return 2 * Math.PI * radius;
}
@Override
public void draw() {
System.out.println("Drawing a circle with radius " + radius + " and color " + color);
}
}
public class Square extends Shape {
private double side;
public Square(double side, String color) {
super(color);
this.side = side;
}
@Override
public double getArea() {
return side * side;
}
@Override
public double getCircumference() {
return 4 * side;
}
@Override
public void draw() {
System.out.println("Drawing a square with side " + side + " and color " + color);
}
}
// 主程序部分
public class Main {
public static void main(String[] args) {
Shape circle = new Circle(5, "blue");
Shape square = new Square(4, "red");
// 调用各方法
circle.draw(); // 输出: Drawing a circle with radius 5 and color blue
System.out.println("Circle area: " + circle.getArea()); // 输出: Circle area: 78.53981633974483
square.draw(); // 输出: Drawing a square with side 4 and color red
System.out.println("Square area: " + square.getArea()); // 输出: Square area: 16
}
}
```
在这个例子中,`Circle`和`Square`都实现了`Shape`类的抽象方法,使得它们可以根据各自的特性有不同的行为。在主程序中,你可以根据不同类型的形状实例来调用相应的功能。这就是多态性的体现。