编写程序,实现重载与重写的效果
时间: 2024-05-05 17:16:55 浏览: 13
以下是一个示例程序,演示了重载和重写的效果:
```java
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("The dog barks");
}
public void makeSound(String message) {
System.out.println("The dog says: " + message);
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
animal.makeSound();
Dog dog = new Dog();
dog.makeSound();
dog.makeSound("Hello");
Animal animal2 = new Dog();
animal2.makeSound();
}
}
```
在这个程序中,我们定义了一个`Animal`类和一个`Dog`类。`Animal`类有一个`makeSound`方法,它输出一个通用的动物声音。`Dog`类继承自`Animal`类,重写了`makeSound`方法,并且还定义了一个重载版本的`makeSound`方法,接受一个字符串参数,输出狗的话语。
在`Main`类的`main`方法中,我们分别创建了一个`Animal`对象和一个`Dog`对象,并分别调用它们的`makeSound`方法。我们还创建了一个`Animal`类型的变量`animal2`,但是它指向了一个`Dog`对象,这就是多态的体现。当我们调用`animal2`的`makeSound`方法时,实际上是调用了`Dog`类的`makeSound`方法,这就是方法的重写。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)