一个接口,有多个实现类,在使用这个接口的时候,如何判断用的是哪个实现类。

今天读程序的时候,突然遇到的问题。hibernate的Session接口,查看文档发现它被4个类实现了,所以就有疑问,当我开始调用Session中的方法时,它到底是被哪个实现类所实现的?
图片说明

给接口定义一个protected的enum。实现类去赋值enum,.用的时候判断enum就知道是哪个实现类了。或者getclass(),就知道是哪个类了。

调用getClass方法,会返回对应的类名。

调用的Session时,它的实例肯定是指定到了一个具体的实现类的,就跟Spring的依赖注入一样