用java已有一个类Animal,该类定义如下图所示。请定义一个继承Animal类的Main类,该类重载父类Animal的eat()方法,能接受一个字符串类型的参数食物(food)。从命令行接受一个字符串作为Main的实例的name变量的值,一个作为食物的值。用该实例调用eat方法,若该实例的name变量的值是Lily,传递的食物是orange则会打印"Lily在吃orange"。 import java .util.Scanner ;class Animal{ string name ; public Animal(String name){ this name = name ; } public void eat () { System.out .println("i'm eating!"); } } 输入:两个字符串。输出:一个字符串。输入样例 1:Lily orange 。 输出样例 1:Lily在吃orange 本题可使用语言:java 。
时间: 2024-03-09 11:44:56 浏览: 76
以下是实现题目要求的代码:
```java
import java.util.Scanner;
class Main extends Animal {
public Main(String name) {
super(name);
}
@Override
public void eat(String food) {
System.out.println(this.name + "在吃" + food);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
String food = scanner.next();
Main main = new Main(name);
main.eat(food);
}
}
```
解释一下代码:
1. `Main`类继承自`Animal`类,因此需要实现`eat()`方法,这里重载了`eat()`方法并接受一个`food`参数。
2. 在`main()`方法中,首先使用`Scanner`类从命令行输入两个字符串,分别为`name`和`food`。
3. 然后创建一个`Main`类的实例`main`,并将`name`作为构造函数的参数传入。
4. 最后调用`main`的`eat()`方法,并将`food`作为参数传入,即可完成输出。
注意:在`Main`类中,需要调用`super(name)`来调用父类的构造函数,以初始化`name`属性。同时,在重载`eat()`方法时,需要加上`@Override`注解,以确保正确重载了父类的方法。
阅读全文