Java 中接口

接口就像 Java 类,但它只有静态常量和抽象方法。Java 使用接口实现多重继承。Java 类可以实现多个 Java 接口。接口中的所有方法都是隐式公共和抽象的。

声明接口的语法

interface {
//methods
}

要在类中使用接口,请在类名后面添加关键字 implements,后跟接口名称。

实现接口的示例

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

为什么需要接口?

为了更好地理解 Java 接口的概念,让我们看一个例子。 Media Player 类有两个子类:CD PlayerDVD Player。每一个都有其独特的播放音乐的实现方法。

另一个类 Combo driveCDDVD 都有继承。它应该继承哪种播放方法?这可能会导致严重的设计问题。因此,Java 不允许多重继承。

现在让我们再看一下 Dog 的例子吧。

假设你有一个要求,其中 dog 类继承了 animalPet 类(见下图)。但是你不能用 Java 扩展两个类。那你会怎么做?解决方案是接口 Interface

接口规则说,

  • 接口是 100%抽象类,只有抽象方法。
  • 类可以实现任意数量的接口。

Dog 类可以扩展到 Animal 类,并将接口实现为 Pet

Java 接口示例:

步骤 1: 将以下代码复制到编辑器中。

interface Pet{
  public void test();
}
class Dog implements Pet{
   public void test(){
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]){
     Pet p = new Dog();
     p.test();
  }
}

步骤 2: 保存,编译和运行代码。观察输出。

类和接口之间的区别

接口
在类中,你可以实例化变量并创建对象。 在接口中,你无法实例化变量并创建对象。
类可以包含具体(带实现)方法 该接口不能包含具体(带实现)方法
与类一起使用的访问说明符是 privateprotectedpublic 在接口中只使用一个说明符 - Public

什么时候使用接口和抽象类?

  • 当需要为一组子类定义模板时,使用抽象类
  • 在需要为其他类定义角色时使用接口,而不管这些类的继承树如何

必须知道接口的一些事实

  • Java 类可以实现多个 Java 接口。该类必须实现接口中声明的所有方法。
  • 类应该重写接口中声明的所有抽象方法
  • 接口允许向对象发送消息,而不涉及它属于哪个类。
  • 类需要为接口中声明的方法提供功能。
  • 接口中的所有方法都是隐式公共和抽象的
  • 无法实例化接口
  • 接口引用可以指向其实现类的对象
  • 接口可以从一个或多个接口扩展。类只能扩展一个类,但可以实现任意数量的接口
  • 接口无法实现其他接口。如果需要,它必须扩展另一个接口。
  • 在另一个接口内声明的接口称为嵌套接口
  • 在声明时,必须初始化接口变量。否则,编译器将抛出错误。
  • 该类无法在 java 中实现两个具有相同名称但返回类型不同的方法的接口。

摘要:

  • 实现接口的类需要为接口中声明的方法提供功能
  • 接口中的所有方法都是隐式公共和抽象的
  • 无法实例化接口
  • 接口引用可以指向其实现类的对象
  • 接口可以从一个或多个接口扩展。类只能扩展一个类,但可以实现任意数量的接口