一、
1.接口,在java编程中是一个抽象类型,是抽象方法的集合,接口通常以interface 来声明。(就像一个类一样,接口也可以说是一个全是抽象方法的抽象类,但接口并不是类),一个类可以通过 implements 实现接口的方法,除非是抽象类,否则需要定义接口中的所有方法,接口里不能写方法的实现(没有方法体)。
public interface Text{
public static final int a=10;//代码段中public,static,final可以不写,默认的
void use();//等同于public abstract void use()
}
class Father implements Text{
}
接口不能被实例化(创建对象),但可以被实现。
二、接口与类相似点
1.一个接口可以有多个方法
2.接口文件保存在.java结尾的文件中,文件名使用接口名。
3.接口的字节码文件保存在.class结尾的文件中。
4.接口相应的字节码文件必须与包名称相匹配的目录结构中。
5.抽象类中的抽象方法也不能有方法体。
6.抽象类中的属性值可以更改,而接口中的属性值不可以更改(被 final修饰)。
三、接口的特点
1.接口不能用于实例化对象。
2.接口没有构造方法。
3.接口中所有的方法必须是抽象方法(默认abstract)。
4.接口不能包含成员变量,出了static和final变量。
5.接口不是被类继承了,而是要被类实现。
6.接口支持多继承。
四、其他坑点
1.一个接口可以继承多个接口,同名的方法就会被默认为同一个,且一个类可以实现多个接口。接口1继承了接口2,那么实现接口1也就能实现接口2的方法。
public interface Demo {
void way1();
void wany2();
}
interface Demo2 extends Demo{
void way3();
}
class Text3 implements Demo2{
@Override
public void way1() {
}
@Override
public void wany2() {
}
@Override
public void way3() {
}
}
2.一个接口被一个类实现,那么就可以访问接口内的变量(常量)。
public interface Text4 {
int a=10;
String b="haha";
void skill();
}
class Text5 implements Text4 {
@Override
public void skill() {
}
public static void main(String[] args) {
System.out.println(a);
}
}
3.接口里的属性值不可以更改,但是可以参与运算。