java编程思想(第九章)

来源:互联网 发布:游族网络(002174)股吧 编辑:程序博客网 时间:2024/05/22 07:40

java中接口与内部类为我们提供了一种使接口与实现分离更加结构化的方法。
1、抽象方法与抽象类
抽象方法:就是一种不完整的方法,只有声明没有方法体。抽象方法结构如下:

abstract void function();

抽象类:含有一个或者多个抽象方法的类,包含抽象方法的类必须声明为抽象类,抽象类可以允许没有抽象方法。一般抽象方法如下声明:

public abstract class Instrument {    public abstract void play();    public abstract void adjust();    public abstract String what();}

抽象类不能直接进行实例化,就是 Instrument mInstrument=new Instrument () 是不被允许的。一般我们是对抽象类的子类进行具体实例化,例如 List list=new ArrayLists() 。
一个类继承另外一个抽象类,若想创建该类的对象,就必须实现基类中的所有抽象方法。否则将无法创建该类的对象,并且导出类也是抽象类。

2、接口,interface关键字使抽象更进一步,产生一个完全抽象的类,没有提供任何具体的实现。(只有方法名,参数列表和返回类型,没有任何方法体。接口只提供了形式,而未提供任何具体实现) 接口结构如下:

public interface Instrument {    void play();    void adjust();    String what();}

接口也是一个特殊的抽象类,因为接口允许我们通过创建一个能够被向上转型为多种基类的类型
来实现类似于多重继承的特性。(Java只支持单继承,但可以通过实现接口来达到多继承的效果)
接口中可以包含域,但是这些域隐式地是static和final的。使用implements关键字让一个类遵循某个接口(或是一组接口)。它表示:”接口只是它的外貌,我们用类实现接口来声明它是如何工作的”。

3、完全解耦

  1. 创建根据所传递的参数对象的不同而具有不同的行为的方法
  2. 适配器中的代码将接受所拥有的接口,并产生所需要的接口。将接口从具体实现中解耦使得接口可以应用于多种不同的具体实现,因此代码也就更具复用性。
0 0