宠物Pet是父类,有一eat()方法表示宠物会吃东西,但不同的宠物吃东西的情况不一样,所以将其定义成抽象方法,将由子类进行重写来实现。 定义小狗累Dog继承Pet类,除了重写方法外还要添加一个特有的guard()方法,输出内容为“小狗会看家护院”。 定义小猫类Cat继承Pet类,除了重写方法外还要添加一个特有的catchMouse()方法,输出内容为“小猫会抓老鼠”。 创建测试类,分别实例化小猫和小狗,调用父类的eat()方法和小猫小狗的特有方法。
时间: 2023-12-10 11:39:31 浏览: 143
代码如下:
```java
// 父类 Pet
public abstract class Pet {
public abstract void eat();
}
// 子类 Dog
public class Dog extends Pet {
@Override
public void eat() {
System.out.println("小狗吃骨头");
}
public void guard() {
System.out.println("小狗会看家护院");
}
}
// 子类 Cat
public class Cat extends Pet {
@Override
public void eat() {
System.out.println("小猫吃鱼");
}
public void catchMouse() {
System.out.println("小猫会抓老鼠");
}
}
// 测试类
public class TestPet {
public static void main(String[] args) {
Dog dog = new Dog();
Cat cat = new Cat();
dog.eat(); // 调用父类的 eat() 方法
dog.guard(); // 调用子类 Dog 特有的 guard() 方法
cat.eat(); // 调用父类的 eat() 方法
cat.catchMouse(); // 调用子类 Cat 特有的 catchMouse() 方法
}
}
```
输出结果为:
```
小狗吃骨头
小狗会看家护院
小猫吃鱼
小猫会抓老鼠
```
阅读全文