前言
接口是Java中的一个非常重要的概念。它用来描述类有什么功能,而不给出每个功能的具体实现。
本文将通过实例讲解接口的定义和使用。
接口的存在意义
在C++中,很多书籍都会强调要谨慎地使用多继承。
多继承有什么弊端,请参考相关资料。而接口,是Java为了避免多继承而提供的一种机制。
在实际项目中,需求方往往将需求发布成一个个接口的型式,作为类的开发者则去编写实现这个接口。
很多系统提供的方法,比如说 sort 方法,它就要求它的处理对象必须实现了Comparable接口。这样就能使得开发的过程变得规律,有序。
接口的使用步骤
1. 首先,定义一个接口。如下所示:
1 package test; 2 3 public interface TestIf { 4 // 定义一个方法(继承时实现) 5 int testFun() ; 6 }
2. 在当前工程的某个类中,可继承此接口并实现接口中的方法:
1 package test; 2 3 // 继承接口 4 public class A implements TestIf{ 5 // 实现接口方法 6 public void testFun() { 7 System.out.println("Hello Interface!"); 8 } 9 }
3. 接下来,2 中实现的接口便能被其他约定好了的类调用了,下面给出一种常见的接口方式:
1 package test; 2 3 public class Java7Learn { 4 // 此方法型参为接口类型 5 public void testIfFun(TestIf testIf) { 6 testIf.testFun(); 7 } 8 9 public static void main(String[] args){ 10 // new主类。因为下面要调用非静态函数 11 Java7Learn java7Learn = new Java7Learn(); 12 // new一个实现了接口的类 13 A a = new A(); 14 15 // 传递进testIfFun方法的实参为继承并实现了此接口的类的对象A 16 java7Learn.testIfFun(a); 17 } 18 }
运行结果
小结
1. 要多在实际项目中从面向对象的角度,从模拟现实的角度来思考接口的意义,才能真正用好接口,写出更高质量的代码。
2. 在后面的文章中介绍对象的拷贝以及算法的使用等时候,也会进一步的介绍接口的使用方法。