一个接口有多个实现类的调用方式

1、普通方式实现:

// 定义一个接口
interface Person {
    void eat(String str);
}
 
// 第一个实现类
class FirstPerson implements Person {
    private String name;
    FirstPerson(String name) {
        this.name = name;
    }
    public void eat(String str) {
        System.out.println(name + "正在吃" + str);
    }
}
 
// 第二个实现类
class SecondPerson implements Person { 
    private String name; 
    SecondPerson(String name) {
        this.name = name;
    }
    public void eat(String str) {
        System.out.println(name + "准备吃" + str);
    }
}
 
// 要通过接口实现类实现接口定义的方法的类
public class Test {
    public final static int FIRST = 0;
    public final static int SECOND = 1;
    // 返回指定类型的接口
    public static Person printPerson(int kind) {
        Person p = null;
        switch (kind) {
            case FIRST: p = new FirstPerson("人1");break;
            case SECOND: p = new SecondPerson("人2");break;
        }
    } 
    public static void main(String[] args) {
         Person person = Test.printPerson(Test.FIRST);
    
person.eat("sth.");
  }
}

2、springMVC 使用注解注入接口实现类:

主要就是在需要注入的地方引入:

    @Autowired
    @Qualifier("timeFilter") // 具体的接口实现类的名称
    Filter timeFilter;

参考链接:

http://blog.csdn.net/tengdazhang770960436/article/details/38091081

原文地址:https://www.cnblogs.com/dali-lyc/p/7297497.html