如何以多态方式控制具有不同接口的类对象?

时间:2018-03-10 14:53:48

标签: java oop design-patterns polymorphism

public interface IAaa {
    public String search(String query);
}
public class DaoAaa implements IAaa {
    @Override
    public String search(String query){
         ....
         retrun "";
    }
}

我有从Aaa到Zzz的这种类型的Dao课程。我无法对源代码进行任何修改。 (我只是代码的客户端。)在这种情况下,我该如何以多态方式使用搜索方法呢?

我想做类似下面的事情。

public void doSomething() {
    List<xxxx> listXxxxx = new ArrayList<xxxx>();
    listXxxxx.add(DaoAaa);
    listXxxxx.add(DaoBbb);
    ....
    for(xxxx obj : listXxxxx){
        obj.search();
        ...
    }
}

1 个答案:

答案 0 :(得分:0)

将变量声明为接口类型,并使用所需具体类型的对象初始化它;也就是IAaa dao = new DaoAaa();。当您调用.search()时,将调用属于具体类的实现。