定义一个Aninal类,包含name属性和makeSound()方法,方法打印:动物发出叫声,定义Dog类继承Anamal类,重写父类的makeSound()方法,打印小狗汪汪。写一个测试类,实现多态
时间: 2024-12-14 07:17:45 浏览: 12
首先,让我们创建一个`Animal`类作为基础类,它有一个`name`属性和一个`makeSound()`方法:
```java
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
// 默认的动物叫声
public void makeSound() {
System.out.println("动物发出叫声");
}
}
```
接下来,我们定义一个`Dog`类,它继承自`Animal`并重写了`makeSound()`方法,以适应狗的特性:
```java
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println("小狗汪汪");
}
}
```
现在,我们可以创建一个测试类`TestPolymorphism`来演示多态:
```java
public class TestPolymorphism {
public static void main(String[] args) {
Animal animal = new Animal("通用动物"); // 创建一个Animal实例
animal.makeSound(); // 输出:动物发出叫声
Animal dog = new Dog("小黄"); // 创建一个Dog实例赋给Animal类型的引用
dog.makeSound(); // 输出:小狗汪汪,尽管引用是Animal类型,但实际调用了Dog的makeSound()
}
}
```
在这个例子中,`testPolymorphism`类展示了多态如何工作,即使`dog`变量是一个`Animal`类型的引用,但它指向的是`Dog`对象,因此当我们调用`makeSound()`时,实际执行了`Dog`类的方法。
阅读全文