如果一个抽象类的所有方法都是抽象的,则可以定义这个类为接口。接口是Java中最重要的概念之一,接口是一种特殊的类,由全局常量和公共的抽象方法组成,不能包含普通方法。
在JDK8之前接口是由全局常量和抽象方法组成的,且接口中的抽象方法不允许有方法体JDK8对接口进行了重新定义,接口中除了抽象方法外,还可以有默认方法和静态方法(也称类方法),默认方法使用defaut修饰,静态方法使用static修饰,且这两种方法都允许有方法体。
接口使用interface关键字声明,语法格式如下:
public interface接口名extends接口1,接口2... public static final 数据类型 常量名=常量值: public default 返回值类型 抽象方法名 (参数列表); public abstract 返回值类型方法名(参数列表) { //默认方法的方法体 } public abstract 返回值类型 抽象方法名(参数列表); { 默认方法的方法体 } public abstract 返回值类型 抽象方法名(参数列表); { //方法的方法体 } }
在上述语法中,“extends接口1,接口2…”表示一个接口可以有多个父接口,父接口之间用逗号分隔。Java使用接口的目的是克服单继承的限制,因为一个类只能有一个父类,而一个接口可以同时继承多个父接口。接口中的变量默认使用“public static final”进行修饰,即全局常量。接口中定义的方法默认使用“publicabstract"进行修饰,即抽象方法。如果接口声明为publie,则接口中的变量和方法全部为public。
注意:
在很多Java程序中,经常看到编写接口中的方法时省略了publie,有很多读者认为它的访问权限是default,这实际上是错误的。不管写不写访问权限,接口中方法的访问权限永远是public.与此类似,在接口中定义常量时,可以省略前面的"pubic static final”"",此时,接口会默认为常量添加“pubic satic fnal"。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253972.html