1.接口的基础知识
1.1 为什么需要接口
接口可以打破继承的单根性,用接口实现多继承
1.2 什么是接口
接口是一种能力
接口是一种约束
1.3 接口的语法
声明:
【修饰符】interface 接口名【extends 父接口1,父接口2……】{
//常量定义
//方法定义
}
引用:
Class 类名 extends 父类名 implements 接口1,接口2….{
//类成员
}
2.接口的特性
接口不能实例化,接口中不能有构造方法
接口中的所有方法都是抽象方法,接口中的方法都会用public static修饰,即接口中只有全局抽象方法。
接口中可以定义常量,不能定义变量,接口中的属性都会自动用public s tatic final修饰,即接口中的属性都是全局静态变量。
在接口中定义的常量必须在定义时赋初始值。常量的字母一般全部大写。
接口的命名规则与类相同,如果是public 则整个项目可见,如果省略修饰符,则只在当前包中可见。
接口之间可以通过extends实现继承关系,一个接口可以继承多个接口。
接口不能继承类,类可以继承接口
接口的实现类必须实现接口的全部方法(重写接口的全部方法),否则必须定义为抽象类。
一个类只能有一个直接父类,但可以实现多个接口。
继承类的关键字extends必须在implemments关键字之前。
3.实现接口的步骤
编写接口(根据需求设计方法)。
编写类(实现接口的所有方法)。
类继承接口(用多态的方式使用)。
4.接口表示一种能力
一个类实现了某个接口,就表示这个类具备了某种能力。
没有具体的实现方法,更加自然的使用多态
5.接口表示一种约定
对继承的多个子类进行统一的约束,从而达到能够使用的要求
6.总结
接口不仅弥补了java只支持单继承的缺点,还利于代码的扩展和维护。接口类似与一个组件,需要时可以自由组装。
接口和类的区别在于:抽象类利于代码的复用,接口利于代码的维护。
很多接口名都是以“able”为后缀的,就是表示:“可以做”。C#中接口名以“I”开头。
接口实现了约定和实现相分离的原则,通过面向接口编程,可以降低代码间的耦合性,提高代码的可扩展性和可维护性
抽象出接口:一是用在层与层之间,最忌讳耦合度过高和修改过于频繁,设计优秀的接口能解决这个问题。
二是用在不稳定的部分上,比如需求的变化性很大。