相对abstract class(抽象类)来讲,interface则造出了“完全抽象的class”,丝毫不带半点实现的内容。且interface中的所有methods(方法)都是虚的空的,当然,编译器也强迫你这样做。看下面事例:
interface A{
<span style="white-space:pre"> </span>void x();//这里不需写访问权限,x()就自动成为了public void x()
<span style="white-space:pre"> </span>String Hello();
}
interface中的方法无需声明,都会自动设为了public。
当然,interface中的数据成员也变为了public,static,final。
interface A{
<span style="white-space:pre"> </span>int a=10;//必须赋值使用
<span style="white-space:pre"> </span>//编译器会自动带上 public static final 这三个修饰符
}
你也可以通过java自带的反编译工具进行查看具体地址在jdk里面的bin文件夹里面javap.exe(不需要启动它,在cmd里面直接敲命令即可如:javap -c -l -private a.class就可以反编译)。
interface的作用:
1.程序的解耦(后期单独详细介绍)。
2.定义规范。
3.拓展功能。
interface的注意事项:
1.interface不能创建对象。
2.interface没有构造方法。
3.interface是给类实现使用的,非抽象类实现一个接口时,必须要实现接口中所有的方法。
实现接口的格式:
class 类名 implements 接口名{}
接口与类之间的关系是:实现关系
类与接口要注意的事项:
1.非抽象类实现接口时,必须实现接口中所有的方法。
2.抽象类实现接口时,可以实现接口中的方法也可以不实现。
3.一个类可以实现多个接口。格式如下:
class A implements b,c,d{}