(1).概念:接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
(2).接口与类的关系
A:相似:接口可以有任意数量的方法;
接口保存为以".java"为后缀名的文件,接口名需要与文件名匹配;
接口编译后是后缀名为".class"的字节码文件;
在包中的接口,其相应的字节码文件必须放置在包名称相匹配的一个目录结构中;
B:区别:接口不能被实例化;
接口不包含任何构造器;
接口中的所有方法都是抽象的;
接口中不能包含实例成员变量。唯一可以出现在接口中的成员变量必须是同时声明为static和final;
接口不能被一个类继承,只能被一个类来实现;
总:接口不是类。类描述了对象的属性和行为,而接口包含了一个类所需要实现的行为。
(3).优点:接口能够用于暴露一个类的某些行为,而不是这个类的所有行为。接口还可以用于强制作用于其它对象的行为,以确保某些方法被对象实现;
有利于设计与实现相分离,对外隐藏了实现;
(4).性质:接口默认是抽象的;
接口中的每一个方法默认也是抽象的,所以不需要关键字abstract;
接口中的方法默认访问级别是public;
(5).声明接口:使用关键字interface
eg:
public interface Paintable{ public void paint(); }
(6).接口的实现【使用关键字implements】:接口不能被实例化,因为接口中的方法都是抽象的,所以需要一个类来实现接口。【接口中定义常量都是public静态常量】
1).实现接口的两个选择:实现接口中定义的所有方法;声明自己为抽象类。
eg:public class 类名 extends 父类名 implements 接口名
原文:http://www.cnblogs.com/moshengren-java/p/4439152.html