Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)
可以理解为接口就是一个抽象类,这个类当中的所有方法都是待实现的方法(也就是只有一个函数签名,没有方法体)当你需要显式引入这个接口的时候,接口内的所有抽象方法都需要你去实现。
拿实验2举例,首先有一个抽象的接口Graph,其中Graph的具体方法都没有实现,接口用interface标识
有了一个接口,就需要有人去实现它,这时候ConcreteVertex和ConcreteEdges便需要引入接口,并将里面的全部方法进行实现,而具体实现方法则需要考虑具体的场景。
interfce的重复引用其实是考虑到不同的场景实现中有相同的函数以及逻辑结构,这些函数本质上相似性很大,所以利用接口就可以将这些具有相似的方法归结起来,形成一个“模板”,等程序需要具体实现的时候就套用这个模板,并在模板的基础上实现具体的方法。
可以把接口(interface)当作一个“ppt模板”,你在不同场合就需要不同的模板来完成你的任务,当你“下载好模板”(implement interface)后,就在这个模板上写上你自己的内容
- 我们不能直接去实例化一个接口,因为接口中的方法都是抽象的,是没有方法体的,这样怎么可能产生具体的实例呢?但是,我们可以使用接口类型的引用指向一个实现了该接口的对象,并且可以调用这个接口中的方法。因此,上图中最后的方法调用我们还可以这样写:(实际上就是使用了Java中多态的特性)
- 一个类可以实现不止一个接口。
-
一个接口可以继承于另一个接口,或者另一些接口,接口也可以继承,并且可以多继承。
-
一个类如果要实现某个接口的话,那么它必须要实现这个接口中的所有方法。
-
接口中所有的方法都是抽象的和public的,所有的属性都是public,static,final的



