java中什么是虚方法
时间: 2024-01-20 10:02:49 浏览: 36
在Java中,虚方法是指在父类中被声明但在子类中被重写的方法。虚方法允许在运行时根据对象的实际类型调用相应的方法。
当一个对象调用一个虚方法时,编译器会根据对象的实际类型来决定调用哪个版本的方法。这就意味着,如果子类重写了父类的虚方法,那么在调用该方法时将会执行子类中的实现。
要声明一个虚方法,需要在父类中使用关键字 "virtual" 或者不使用任何关键字来修饰方法。在子类中,通过使用 "override" 关键字来重写父类中的虚方法。
以下是一个示例代码:
```java
class Animal {
public virtual void makeSound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
public override void makeSound() {
System.out.println("Dog barks");
}
}
class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Animal dog = new Dog();
animal.makeSound(); // 输出:"Animal makes a sound"
dog.makeSound(); // 输出:"Dog barks"
}
}
```
在上面的示例中,Animal类中的makeSound()方法被声明为虚方法。在Dog类中,我们重写了makeSound()方法,并且通过调用dog.makeSound(),最终执行的是子类Dog中的实现。
相关推荐
![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_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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)