天气可能出现不同的状态,要求用接口封装天气的状恋。具体要求如下: (1) 编写一个接口 Weatherstate,该接口有一个名为 void showstate()的方法。 (2)编写一个 weather 类,该类中有一个Weatherstate 接口声明的变量state。另外,该类有一个show ()方法,在该方法中让接口state回调 showstate()方法。 (3)编写若干个实现WeatherState接口的类,负责刻画天气的各种 (4)编写主类,在主类中进行天气预报
时间: 2024-03-14 14:43:41 浏览: 26
好的,根据您的要求,以下是代码实现:
```java
// 定义天气状态接口
interface WeatherState {
void showState();
}
// 定义天气类
class Weather {
private WeatherState state;
// 设置天气状态
public void setState(WeatherState state) {
this.state = state;
}
// 展示天气状态
public void show() {
state.showState();
}
}
// 定义晴天状态
class SunnyState implements WeatherState {
public void showState() {
System.out.println("今天是晴天!");
}
}
// 定义阴天状态
class CloudyState implements WeatherState {
public void showState() {
System.out.println("今天是阴天!");
}
}
// 定义雨天状态
class RainyState implements WeatherState {
public void showState() {
System.out.println("今天是雨天!");
}
}
// 主类
public class Main {
public static void main(String[] args) {
Weather weather = new Weather();
// 设置晴天状态
weather.setState(new SunnyState());
weather.show();
// 设置阴天状态
weather.setState(new CloudyState());
weather.show();
// 设置雨天状态
weather.setState(new RainyState());
weather.show();
}
}
```
您可以根据需要自行修改和完善代码。