Java接口

Java接口 首页 / Java入门教程 / Java接口

接口可以包含常量、默认方法、静态方法和嵌套类型,方法体仅存在于默认方法和静态方法,编写接口类似于编写类。

声明接口

interface关键字用于声明接口。下面是一个声明接口的简单示例

/* File name : NameOfInterface.java */
import java.lang.*;
//Any number of import statements

public interface NameOfInterface {
   //Any number of final, static fields
   //Any number of abstract method declarations\
}

接口示例

/* File name : Animal.java */
interface Animal {
   public void eat();
   public void travel();
}

实现接口

当类实现接口时,您可以将该类视为签署合同,同意执行接口的特定行为,如果类不执行接口的所有行为,则该类必须将自身声明为抽象。

链接:https://www.learnfk.comhttps://www.learnfk.com/java/java-interfaces.html

来源:LearnFk无涯教程网

类使用implements关键字实现接口。

/* File name : MammalInt.java */
public class MammalInt implements Animal {

   public void eat() {
      System.out.println("Mammal eats");
   }

   public void travel() {
      System.out.println("Mammal travels");
   } 

   public int noOfLegs() {
      return 0;
   }

   public static void main(String args[]) {
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

这将产生以下输出-

Mammal eats
Mammal travels

扩展接口

一个接口可以扩展另一个接口,就像一个类可以扩展另一个类一样,以下Sports接口由Hockey和Football接口扩展。

无涯教程网

//Filename: Sports.java
public interface Sports {
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}

//Filename: Football.java
public interface Football extends Sports {
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

//Filename: Hockey.java
public interface Hockey extends Sports {
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

Hockey接口有四个方法,但它从Sports继承了两个方法;因此,实现Hockey的类需要实现所有六个方法。同样,实现Football的类需要定义Football中的三个方法和Sports中的两个方法。

扩展多个接口

一个Java类只能扩展一个父类。不允许多重继承。然而,接口不是类,一个接口可以扩展多个父接口。

只使用一次EXTENDES关键字,并且在逗号分隔的列表中声明父接口。

public interface Hockey extends Sports, Event

标记接口

当父接口不包含任何方法时,会发生扩展接口的最常见用法。例如,java.awt.event包中的MouseListener接口扩展了java.util.EventListener,其定义为-

package java.util;
public interface EventListener
{}

其中没有方法的接口称为标记接口。标记接口有两个基本设计目的-

Creates a common parent − 与EventListener接口(由Java API中的许多其他接口扩展)一样,您可以使用标记接口在一组接口之间创建一个公共父级。例如,当接口扩展EventListener时,JVM知道该特定接口将在事件委托场景中使用。

Adds a data type to a class − 实现标记接口的类不需要定义任何方法(因为该接口没有任何方法),但是该类通过多态性成为接口类型。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

教程推荐

遗留系统现代化实战 -〔姚琪琳〕

手机摄影 -〔@随你们去〕

Flink核心技术与实战 -〔张利兵〕

微信小程序全栈开发实战 -〔李艺〕

Electron开发实战 -〔邓耀龙〕

小马哥讲Spring核心编程思想 -〔小马哥〕

性能工程高手课 -〔庄振运〕

数据结构与算法之美 -〔王争〕

从0开始学微服务 -〔胡忠想〕

好记忆不如烂笔头。留下您的足迹吧 :)