package jiang; public class Fruit { class Fruit: def __init__(self, color, shape, taste): self.color = color self.shape = shape self.taste = taste def eat(self): print("吃水果") def peel(self): print("剥水果皮") def describe(self): print(f"这个水果是{self.color}色的,{self.shape}状的,味道{self.taste}") class Color(Fruit): def __init__(self, color, shape, taste): super().__init__(color, shape, taste) def change_color(self, new_color): self.color = new_color print(f"水果颜色变成了{self.color}") class Shape(Fruit): def __init__(self, color, shape, taste): super().__init__(color, shape, taste) def change_shape(self, new_shape): self.shape = new_shape print(f"水果形状变成了{self.shape}") // 测试代码 apple = Color("红色", "圆形", "甜") apple.describe() # 输出:这个水果是红色的,圆形状的,味道甜 apple.eat() # 输出:吃水果 apple.change_color("绿色") # 输出:水果颜色变成了绿色 apple.describe() # 输出:这个水果是绿色的,圆形状的,味道甜 banana = Shape("黄色", "弯曲", "香甜") banana.describe() # 输出:这个水果是黄色的,弯曲状的,味道香甜 banana.peel() # 输出:剥水果皮 banana.change_shape("直的") # 输出:水果形状变成了直的 banana.describe() # 输出:这个水果是黄色的,直的状的,味道香甜 }
时间: 2024-04-12 14:27:25 浏览: 22
你提供的代码存在一些错误和不符合Java语法的地方。以下是经过修正的代码:
```java
package jiang;
public class Fruit {
private String color;
private String shape;
private String taste;
public Fruit(String color, String shape, String taste) {
this.color = color;
this.shape = shape;
this.taste = taste;
}
public void eat() {
System.out.println("吃水果");
}
public void peel() {
System.out.println("剥水果皮");
}
public void describe() {
System.out.println("这个水果是" + color + "色的," + shape + "状的,味道" + taste);
}
public class Color extends Fruit {
public Color(String color, String shape, String taste) {
super(color, shape, taste);
}
public void changeColor(String newColor) {
color = newColor;
System.out.println("水果颜色变成了" + color);
}
}
public class Shape extends Fruit {
public Shape(String color, String shape, String taste) {
super(color, shape, taste);
}
public void changeShape(String newShape) {
shape = newShape;
System.out.println("水果形状变成了" + shape);
}
}
public static void main(String[] args) {
Fruit.Color apple = new Fruit().new Color("红色", "圆形", "甜");
apple.describe(); // 输出:这个水果是红色的,圆形状的,味道甜
apple.eat(); // 输出:吃水果
apple.changeColor("绿色"); // 输出:水果颜色变成了绿色
apple.describe(); // 输出:这个水果是绿色的,圆形状的,味道甜
Fruit.Shape banana = new Fruit().new Shape("黄色", "弯曲", "香甜");
banana.describe(); // 输出:这个水果是黄色的,弯曲状的,味道香甜
banana.peel(); // 输出:剥水果皮
banana.changeShape("直的"); // 输出:水果形状变成了直的
banana.describe(); // 输出:这个水果是黄色的,直的状的,味道香甜
}
}
```
修正后的代码中,将父类"水果"和子类"颜色"、"果型"都放在了同一个Java文件中,并且修正了方法名的大小写和调用方式。在测试代码中,通过创建父类和子类的实例来调用方法进行测试。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)