Java多态接口有多个实现类,如何知道在执行的时候是调用的哪一个类
时间: 2024-10-10 14:14:41 浏览: 71
在Java中,当你有一个接口,并且这个接口有多个实现类(也叫实现接口的类),你可以创建该接口类型的引用变量,并将它指向任何一个具体的实现类实例。当你通过这个引用调用接口中的方法时,会自动绑定到实际的对象类型,即运行时动态确定调用的是哪个类的方法。
这背后的机制就是Java的动态绑定(后期绑定)。当你不在特定上下文中指定具体类时,比如在方法中传入接口类型的参数并调用其方法,Java虚拟机会在运行时检查对象的实际类型,然后根据这个类型去找到正确的实现并执行相应的方法。这是多态性的核心部分,使得代码更具灵活性。
例如:
```java
Interface MyInterface {
void doSomething();
}
class Implementation1 implements MyInterface {
public void doSomething() {
// 实现1的方法
}
}
class Implementation2 implements MyInterface {
public void doSomething() {
// 实现2的方法
}
}
MyInterface obj; // 接口类型的引用
obj = new Implementation1(); // 对象可以赋值为任何实现类
obj.doSomething(); // 运行时调用的是Implementation1的doSomething()
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)