Java语言编写程序演示多态的应用,要求:至少有1个抽象类和2个子类。程序中要实现: (1)对象的向上转型和向下转型; (2)使用instanceof关键字判断对象所属类型; (3)方法要调用,程序要有输出结果。
时间: 2024-12-23 17:23:47 浏览: 7
在Java中,我们可以创建一个简单的例子来演示多态的应用。这里有一个抽象动物类`Animal`,两个具体的子类`Dog`和`Cat`,以及一些相关的函数:
```java
abstract class Animal {
public abstract void makeSound();
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("汪汪");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("喵喵");
}
}
public class Main {
public static void main(String[] args) {
// 创建Animal类型的引用,并指向具体的子类实例
Animal animal1 = new Dog(); // 向上转型
Animal animal2 = new Cat();
// 输出动物的声音,利用多态
animal1.makeSound(); // 输出 "汪汪"
animal2.makeSound(); // 输出 "喵喵"
// 使用instanceof判断对象类型
if (animal1 instanceof Dog) {
System.out.println(animal1 + " 是一只狗"); // 输出 "Dog 是一只狗"
} else if (animal1 instanceof Animal) {
System.out.println(animal1 + " 是一个动物"); // 输出 "Dog 是一个动物"
}
if (animal2 instanceof Cat) {
System.out.println(animal2 + " 是一只猫"); // 输出 "Cat 是一只猫"
} else if (animal2 instanceof Animal) {
System.out.println(animal2 + " 是一个动物"); // 输出 "Cat 是一个动物"
}
}
}
```
在这个示例中,我们展示了向上转型(从子类到超类)和向下转型(从超类到子类),并使用了`instanceof`关键字来检查对象的实际类型。运行这个程序,可以看到多态性和其灵活性如何体现在实际操作中。
阅读全文