系列中的上一篇
当前教程
使用接口作为类型
这是本系列的最后一篇!

系列中的上一篇: 实现接口

使用接口作为类型

 

使用接口作为类型

定义新接口时,您实际上是在定义新的引用数据类型。您可以在使用任何其他数据类型名称的地方使用接口名称。如果您定义一个类型为接口的引用变量,则分配给它的任何对象都必须是实现该接口的类的实例。

例如,以下是一个方法,用于查找一对对象中最大的对象,适用于从实现 Relatable 的类实例化的任何对象。

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;
}

通过将 object1 转换为 Relatable 类型,它可以调用 isLargerThan() 方法。

如果您在各种类中实现 Relatable,则可以将从这些类实例化的对象与 findLargest() 方法进行比较,前提是这两个对象属于同一个类。类似地,它们都可以与以下方法进行比较

public Object findSmallest(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ((obj1).isLargerThan(obj2) < 0)
      return object1;
   else 
      return object2;
}

public boolean isEqual(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ( (obj1).isLargerThan(obj2) == 0)
      return true;
   else 
      return false;
}

这些方法适用于任何“可比较”的对象,无论它们所属的类继承关系如何。当它们实现 Relatable 时,它们可以同时属于它们自己的类(或超类)类型和 Relatable 类型。这为它们提供了一些多重继承的优势,它们可以同时拥有超类和接口的行为。

在本教程中


上次更新: 2021 年 9 月 14 日


系列中的上一篇
当前教程
使用接口作为类型
这是本系列的最后一篇!

系列中的上一篇: 实现接口