使用接口作为类型

Alb*_*ish 3 java

我一直在查看一些生产代码,我对使用接口作为类型(对象)的概念感到有点困惑

我看到了这个解释http://download.oracle.com/javase/tutorial/java/IandI/interfaceAsType.html

这是下面的代码:

public Object findLargest(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ( (obj1).isLargerThan(obj2) > 0)
      return object1;
   else 
      return object2;
}
Run Code Online (Sandbox Code Playgroud)

Relatable接口在哪里,我不明白它在哪里获得isLargerThan(obj2)函数调用的逻辑.

有人能说清楚吗?

cas*_*nca 8

逻辑来自实现接口的类.这正是您无法直接实例化接口的原因,因为接口本身不包含任何实现.该语言确保传递给您的方法的对象是一个实现接口中的方法的具体类.