接口(英文:interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似(接口是public interface name{},类是public class name{}),但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。如果是普通类(即非抽象类)来实现接口,就必须重写其接口所提供的所有抽象方法(抽象类则不需要)。接口不能像类一样用关键字new出实例,但是可以用implements关键字来实现。接口中的方法类型模式是 修饰符 abstract 返回值类型 方法名();不管是否写全,最后系统默认都是这个规范。
接口实现的注意事项:
①接口中所有的方法必须提供具体的实现
②必须遵守重写的规范
重写的规范:a>子类的重写方法不能抛出更大的重写异常
b>子类的重写方法不能有更小的访问范围(即父类是public 子类也必须是public)
③必须保持相同的返回值类型(即接口中规定返回值类型为void,则实现类中实现方法也必须是void)
接口与类的相似点:
①一个接口可以有多个方法
②接口文件保存在.java结尾的文件中,文件名使用接口名
③接口的字节码文件保存在.class结尾的文件中
接口与类的区别:
①接口无法像类一样使用new来创建实例
②接口没有构造方法
③接口中所有的方法都被默认为是抽象方法
④接口中没有变量,即使存在变量,也会被系统默认为 公有的(public) 静态的(static) 最终的(final)的常量
⑤接口中可以存在多重继承,而类只能被单重继承
接口的继承:
一个接口能继承另一个接口,和类之间的继承类似。但区别是接口能多重继承,类只能单继承。
标记接口:
最常用的继承接口是没有包含任何方法的接口。
标记接口是没有任何方法和属性的接口,它仅仅表明它的类属于一个特定的类型,供其它代码来测试允许做一些事情。
标识接口作用:简单形象的说就是给某个对象打个标记,使对象拥有某个或某些特权。例如:java.awt.event包中的MouseListener接口继承的java.util.EventListener接口定义如下:
没有任何方法的接口被称为标记接口。标记接口主要用于以下两种目的:
①建立一个公共的父接口:
正如EventListener接口,这是由几十个其他接口扩展的Java API,你可以使用一个标记接口来建立一组接口的父接口。例如:当一个接口继承了EventListener接口,JVM就知道该接口将要被用于一个事件的代理方案。
②向一个类添加数据类型:
这种情况是标机接口最初的目的,实现标记接口的类不需要定义任何接口方法(标记接口本身也没有任何方法),但是该标记接口可以通过多态性(接口回调)变成一个接口类型。