按以下要求编写程序: (1) 编写Plant接口,接口中声明eatable()方法 (2) 定义Grass类和Tomato类实现Plant接口 (3) 编写Grass类和Tomato类的测试类,并调用其中的eatable()方法,输出相关信息。
时间: 2024-03-09 12:47:54 浏览: 79
以下是符合要求的Java程序:
```
// 定义Plant接口
interface Plant {
void eatable();
}
// 实现Grass类
class Grass implements Plant {
public void eatable() {
System.out.println("Grass is eatable.");
}
}
// 实现Tomato类
class Tomato implements Plant {
public void eatable() {
System.out.println("Tomato is eatable.");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 创建Grass对象并调用eatable()方法
Grass grass = new Grass();
grass.eatable();
// 创建Tomato对象并调用eatable()方法
Tomato tomato = new Tomato();
tomato.eatable();
}
}
```
运行结果为:
```
Grass is eatable.
Tomato is eatable.
```
相关问题
编写plant接口,接口中声明eatable()方法,定义grass类和tomato类实现plant接口,编写grass类和tomato类的测试类,并调用其中的eatable()方法,输出相关信息
好的,这是一个 Java 编程问题,我会尽力回答。以下是代码示例:
首先,我们需要定义一个 `Plant` 接口,并在其中声明一个 `eatable()` 方法:
```java
public interface Plant {
void eatable();
}
```
然后,我们需要定义两个类 `Grass` 和 `Tomato`,它们都实现了 `Plant` 接口,并分别实现了 `eatable()` 方法:
```java
public class Grass implements Plant {
public void eatable() {
System.out.println("Grass can be eaten by herbivores.");
}
}
public class Tomato implements Plant {
public void eatable() {
System.out.println("Tomato can be eaten by humans.");
}
}
```
接下来,我们编写两个测试类 `GrassTest` 和 `TomatoTest`,并调用其中的 `eatable()` 方法,输出相关信息:
```java
public class GrassTest {
public static void main(String[] args) {
Plant grass = new Grass();
grass.eatable();
}
}
public class TomatoTest {
public static void main(String[] args) {
Plant tomato = new Tomato();
tomato.eatable();
}
}
```
当我们运行 `GrassTest` 类时,会输出:
```
Grass can be eaten by herbivores.
```
当我们运行 `TomatoTest` 类时,会输出:
```
Tomato can be eaten by humans.
```
这样就完成了题目要求的任务,通过定义接口和实现类,我们可以更好地组织和管理代码,并且通过测试类验证代码是否正确。
public interface Plant { void eatable();} public class Grass implements Plant { @Override public void eatable() { System.out.println("Grass is eatable."); }}public class Tomato implements Plant { @Override public void eatable() { System.out.println("Tomato is eatable."); }} public class TestPlant { public static void main(String[] args) { Grass grass = new Grass(); Tomato tomato = new Tomato(); grass.eatable(); tomato.eatable(); }}的优化
这段代码本身没有明显的问题,但是可以进行一些优化:
1. 接口名可以更加明确,例如将 Plant 改为 Eatable。
2. 注释可以添加,例如给 Grass 和 Tomato 类添加注释说明它们的作用和实现原理。
3. 可以使用更加语义化的命名,例如将 TestPlant 改为 EatableTest。
修改后的代码如下:
```
public interface Eatable {
void isEatable();
}
public class Grass implements Eatable {
@Override
public void isEatable() {
System.out.println("Grass is eatable.");
}
}
public class Tomato implements Eatable {
@Override
public void isEatable() {
System.out.println("Tomato is eatable.");
}
}
public class EatableTest {
public static void main(String[] args) {
Grass grass = new Grass();
Tomato tomato = new Tomato();
grass.isEatable();
tomato.isEatable();
}
}
```
阅读全文