完善上一个上机练习。狗具有特有的接飞盘方法企鹅具有特有的南极游泳方法。请编写测试类分别调用各种具体宠物的特有方法。 。使用向下转型 。使用instanceof判断宠物类型
时间: 2024-10-19 08:15:28 浏览: 29
为了完善这个上机练习,我们可以创建一个`Pet`接口以及一些具体的实现类,如`Dog`和`Penguin`。这两个类会包含各自的特有方法,比如`catchFrisbee()`对狗来说,和`swimAntarctic()`对企鹅来说。然后我们编写一个测试类`PetExerciseTest`,它将创建这些对象并调用它们的方法。
```java
// Pet接口
public interface Pet {
void performAction();
}
// 狗类,实现了Pet接口
public class Dog implements Pet {
@Override
public void performAction() {
System.out.println("Dog is catching a frisbee.");
}
// 特有的方法
public void catchFrisbee() {
System.out.println("Dog caught the frisbee!");
}
}
// 企鹅类,实现了Pet接口
public class Penguin implements Pet {
@Override
public void performAction() {
System.out.println("Penguin is swimming in the Antarctic Ocean.");
}
// 特有的方法
public void swimAntarctic() {
System.out.println("Penguin swam gracefully in the icy waters.");
}
}
// 测试类PetExerciseTest
public class PetExerciseTest {
public static void main(String[] args) {
// 创建对象并向下转型
Pet dog = new Dog();
Pet penguin = new Penguin();
// 调用特有方法
dog.catchFrisbee(); // 使用向下转型
((Dog) penguin).catchFrisbee(); // 也通过强制转换
// 判断宠物类型
if (dog instanceof Dog) {
System.out.println(dog.getClass().getSimpleName() + " is indeed a dog.");
} else if (penguin instanceof Penguin) {
System.out.println(penguin.getClass().getSimpleName() + " is truly an Antarctic swimmer.");
}
}
}
```
在这个例子中,`PetExerciseTest`展示了如何通过接口调用特有方法,并利用`instanceof`关键字检查宠物的真实类型。运行此程序,可以看到每种动物的特定行为。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)