接口的概念:Java中的接口(interface)在语法上有些类似于类,它定义了若干个抽象方法和常量,这些常量对应某一组功能,表示事务某方面的特性。
接口里面是不变的,是稳定的,可以说接口就是特殊的抽象类,比抽象类还抽象,定义是用的是interface,而且接口里面的方法都是抽象方法(默认是public abstract)
可以以理解类的思想去理解接口但是又有所不同,接口可以实现多继承,但类不可以,也不要理解成接口可以继承类
还有就是,接口一般定义好后,就不会再去变动,一般定义的实现类。在类的声明部分,用implements关键字声明该类将要实现哪些接口。
例如:给出一个接口的定义:
接口的具体实现方法在下面实现:
:
在抽象类中是可以提供某些具体的实现,但是接口不提供任何实现,接口中的所有的方法都是抽象方法,接口是完全面向规范的,规定了一批具有公共方法的规范。
重点:
接口只定义规范,不定义具体的实现理解:
从接口的实现者角度看,接口定义了可以向外部提供的服务;
从接口的调用者角度看,接口定义了实现者能提供哪些服务;
接口是两个模块之间的通信,通信的规范。如果能把你要设计的接口定义好,就相当于完成了系统的设计大纲,剩下的就是添砖加瓦的具体实现了。
接口里面是不可以定义变量的,只可以定义常量和抽象方法
默认情况先定义变量的修饰符是public static final
方法是public abstract
子类通过implements来实现接口中的规范,接口是不能创建实例的
一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。
问题:为什么要用接口呢?只定义又不实现,有什么好处呢?
在软件的变成当中,最重要的就是复杂事情简单化,如果没有接口,可能会增加软件设计的复杂化,只有在设计中围绕某种东西去展开,才能以静制动,实现规范的高质量的项目。
接口就是规范,就是软件设计当中稳定的东西,面向接口编程可以让我们把握住真正核心的东西,是实现复杂多变的需求成为可能。