# 定义接口 > 原文: [https://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html](https://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html) 接口声明由修饰符,关键字`interface`,接口名称,逗号分隔的父接口列表(如果有)和接口主体组成。例如: ``` public interface GroupedInterface extends Interface1, Interface2, Interface3 { // constant declarations // base of natural logarithms double E = 2.718282; // method signatures void doSomething (int i, double x); int doSomethingElse(String s); } ``` `public`访问说明符表示该接口可以被任何包中的任何类使用。如果未指定接口是公共接口,则只能在与接口相同的程序包中定义的类上访问您的接口。 接口可以扩展其他接口,就像类子类或扩展另一个类一样。但是,虽然类只能扩展另一个类,但接口可以扩展任意数量的接口。接口声明包括它扩展的所有接口的逗号分隔列表。 ## 接口主体 接口主体可以包含[抽象方法](../../java/IandI/abstract.html),[默认方法](../../java/IandI/defaultmethods.html)和[静态方法](../../java/IandI/defaultmethods.html#static)。接口中的抽象方法后跟分号,但没有大括号(抽象方法不包含实现)。默认方法使用`default`修饰符定义,静态方法使用`static`关键字定义。接口中的所有抽象,默认和静态方法都是隐式`public`,因此您可以省略`public`修饰符。 此外,接口可以包含常量声明。接口中定义的所有常量值都隐含`public`,`static`和`final`。再一次,您可以省略这些修饰符。