四、接口的基本思想 接口及相关机制的最基本作用在于:通过接口可以实现不相关类的相同行为,而不需考虑这些类之间的层次关系。根据接口可以了解对象的交互界面,而不需了解对象所属的类。 面向对象程序设计讲究“提高内聚,降低耦合”,那么不同的程序模块怎么相互访问呢,就是通过接口,也就是接口是各部分对外的统一外观。接口在Java程序设计中体现的思想就是隔离,因为接口只是描述一个统一的行为,所以开发人员在面向接口编程时并不关心具体的实现。 由以上讲到的接口的作用和基本思想可以看到,接口在面向对象的Java程序设计中占有举足轻重的地位。事实上在设计阶段最重要的任务之一就是设计出各部分的接口,然后通过接口的组合,形成程序的基本框架结构。 具体的接口的在设计和实现中的使用,本书将在第二部分Java程序设计和第三部分案例分析里面,结合具体的例子详细讲述,希望同学们好好体会。
五、接口作为类型使用 1.接口的使用 接口的使用与类的使用有些不同。 在需要使用类的地方,会直接使用new关键字来构建一个类的实例进行应用: ClassA a = new ClassA(); 这是正确的 但接口不可以这样用,因为接口不能直接使用new关键字来构建实例。 InterfaceA a = new InterfaceA(); 这是错误的 接口在使用的时候要实例化相应的实现类。 InterfaceA a = new ImplementsA(); 这是正确的 下面就可以使用a.method()的方式来调用接口的方法了。 2.接口作为类型使用 接口作为引用类型来使用,任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类中所实现的接口中的方法,Java运行时系统会动态地确定应该使用哪个类中的方法,实际上是调用相应的实现类的方法。
示例如下: public class Test { public void test1(A a){ a.doSth(); } public static void main(String[] args) { Test t = new Test();
A a = new B(); t.test1(a); } } interface A{ public int doSth(); } class B implements A{ @Override public int doSth() { System.out.println("now in B"); return 123; } } 运行结果:now in B
大家看到接口可以作为一个类型来使用,把接口作为方法的参数和返回类型。
|
第七章 抽象类和接口 四、

