定义父类:Animal,实现eat()方法动物吃东西、show()方法,输出动物名字、年龄 子类:pig、cat、dog继承父类Animal,重写父类方法实现pig吃白菜;cat吃鱼、抓老鼠;dog吃骨头 (多态不能使用子类特有功能;非静态内部类需要实例化)
时间: 2024-04-29 09:24:41 浏览: 130
很棒的问题!下面是我的回答:
父类Animal的定义如下:
```java
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println("动物正在吃东西");
}
public void show() {
System.out.println("动物的名字是" + this.name + ",年龄是" + this.age + "岁");
}
}
```
子类pig、cat、dog的定义如下:
```java
public class pig extends Animal {
public pig(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("小猪正在吃白菜");
}
}
public class cat extends Animal {
public cat(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("小猫正在吃鱼");
}
public void catchMouse() {
System.out.println("小猫正在抓老鼠");
}
}
public class dog extends Animal {
public dog(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("小狗正在吃骨头");
}
public void bark() {
System.out.println("汪汪汪!");
}
}
```
当然,也可以将eat方法进行参数化,使得不同的子类可以传入不同的食物:
```java
public void eat(String food) {
System.out.println("动物正在吃" + food);
}
```
希望这些代码能够帮到你,如果有任何问题,欢迎进行进一步的提问!
阅读全文