声明一个抽象Animal类,此类中定义抽象方法shout(); 声明Dog类、Cat类,均继承自Animal类,并重写了shout()方法; 运用多态方式实例化子类对象并调用shout()方法打印输出信息; 具体输出要求请看测试说明。
时间: 2024-04-30 16:17:08 浏览: 161
好的,这是一个关于面向对象编程的问题。以下是你的问题的具体实现方案:
首先,我们来创建Animal类并定义抽象方法shout():
```java
public abstract class Animal {
public abstract void shout();
}
```
接下来,我们来创建Dog类和Cat类,并重写shout()方法:
```java
public class Dog extends Animal {
@Override
public void shout() {
System.out.println("旺旺");
}
}
public class Cat extends Animal {
@Override
public void shout() {
System.out.println("喵喵");
}
}
```
现在我们使用多态方式实例化Dog类和Cat类,并调用shout()方法:
```java
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.shout();
animal2.shout();
```
运行该代码,将会得到以下输出:
```
旺旺
喵喵
```
通过上述示例,我们可以看到多态的强大之处。无论我们实例化哪个子类对象,Java虚拟机都会自动调用正确的重写方法(即shout()方法)。但是因为我们在Animal类中将shout()方法定义为抽象方法,所以在Animal类中无法创建对象,只能被Dog类和Cat类通过继承实现。
阅读全文