我的两个类A和B都实现了C接口,实现了C接口的validator方法进行不同的业务处理,我如何在D类中同时调用这两个validator方法
时间: 2024-12-12 20:23:25 浏览: 6
在Java中,如果你有两个类A和B都实现了C接口,并且各自实现了C接口中的`validator`方法来进行不同的业务处理,那么在D类中你可以通过`C`类型的引用来调用这个方法,利用了多态性。以下是如何操作:
```java
class A implements C {
// 实现A类的validator方法
@Override
public void validator() {
// A类的业务处理逻辑
}
}
class B implements C {
// 实现B类的validator方法
@Override
public void validator() {
// B类的业务处理逻辑
}
}
class D {
private C obj; // 使用C接口的引用
public void callValidator(C c) {
obj.validator(); // 这里可以是A、B或任何实现了C接口的对象
}
public void useSpecificValidator(A a) {
obj = a; // 将引用指向A实例,此时调用的是A的validator
obj.validator();
}
public void useSpecificValidator(B b) {
obj = b; // 将引用指向B实例,此时调用的是B的validator
obj.validator();
}
}
```
在`D`类中,你可以通过传入具体的实例(`A`或`B`)到`callValidator`方法,然后通过`obj`变量动态地切换并调用相应的`validator`方法。
阅读全文