在Java中是如何定义和声明接口的?

  • Post author:
  • Post category:java


如果一个抽象类的所有方法都是抽象的,则可以定义这个类为接口。接口是Java中最重要的概念之一,接口是一种特殊的类,由全局常量和公共的抽象方法组成,不能包含普通方法。

在JDK8之前接口是由全局常量和抽象方法组成的,且接口中的抽象方法不允许有方法体JDK8对接口进行了重新定义,接口中除了抽象方法外,还可以有默认方法和静态方法(也称类方法),默认方法使用defaut修饰,静态方法使用static修饰,且这两种方法都允许有方法体。

接口使用interface关键字声明,语法格式如下:

publicinterface接口名extends接口1,接口2...publicstaticfinal 数据类型 常量名=常量值:publicdefault 返回值类型 抽象方法名 (参数列表);publicabstract 返回值类型方法名(参数列表){//默认方法的方法体}publicabstract 返回值类型 抽象方法名(参数列表); {

默认方法的方法体

}publicabstract 返回值类型 抽象方法名(参数列表); {//方法的方法体}}

在上述语法中,“extends接口1,接口2…”表示一个接口可以有多个父接口,父接口之间用逗号分隔。Java使用接口的目的是克服单继承的限制,因为一个类只能有一个父类,而一个接口可以同时继承多个父接口。接口中的变量默认使用“public static final”进行修饰,即全局常量。接口中定义的方法默认使用“publicabstract”进行修饰,即抽象方法。如果接口声明为publie,则接口中的变量和方法全部为public。

注意:

在很多Java程序中,经常看到编写接口中的方法时省略了publie,有很多读者认为它的访问权限是default,这实际上是错误的。不管写不写访问权限,接口中方法的访问权限永远是public.与此类似,在接口中定义常量时,可以省略前面的”pubic static final”””,此时,接口会默认为常量添加“pubic satic fnal”。



版权声明:本文为Blue92120原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。