接口和前面学的抽象类抽象方法有点像,接口就是一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。
语法:
interface 接口名{
//属性
//方法
}
class 类名 implements 接口{
自己的属性
自己的方法
必须要实现的抽象方法
}
小结:
在jdk7.0前,接口里的方法都没有方法体。
jdk8.0接口可以有静态方法,默认方法(default关键字修饰),也就是说接口中可以有方法的具体体现。
接口的需求,一般来说,接口只需要把该接口所需要的功能/规格定下来,然后让其他类来实现没有完成的抽象方法。
接口的注意事项:
1.接口不能被实例化
2.接口的所有方法都是public,接口中的抽象方法可以省略abstract,即void 方法名();
3.一个普通类实现接口,就必须将该接口的所有的方法实现。
4.抽象类实现接口,可以不用实现接口的方法。
5.一个类可以实现多个接口
6.接口中的属性,只能是static,而且是public static(接口不能创建对象) final(不能修改) 修饰符。比如:
public static final n1=10;//必须初始化
8.一个接口不能继承其他的类,但是可以继承其他的接口。
interface A extends B,C{}
9.接口的修饰符只能是public,和默认,这点和修饰符是一样的
接口和继承的区别:
1.接口和继承实现的问题不同
继承的价值在于:解决代码复用性和维护性
接口的价值在于:设计,设计好各种规范(方法),让其它类去实现这些方法,更加灵活。
2.接口相对继承更加灵活
3.接口在一定程度上实现代码解耦
接口的多态性质
接口的多态传递现象:
interface A extends interface B{}
如果A继承B的接口,,而类C实现了A接口。相当于C也实现了B接口,这就是所谓的多态传递现象。