有了接口可以做统一的规则约束
每一个子类都实现同一个规则 用户使用起来很容易
如果按照上述方式来实现 接口一旦添加了新的规则 所有的子类都需要跟着添加新的方法
所以就有了 缺省适配器
package test_array;
public interface Box {//接口
public boolean addNum(Object value);
public Object getNum(int index);
public Object deleteNum(int index);
public int size();
public void addNum(int index,Object value);//接口新添加的规则
}
package test_array;
public abstract class AbstractBox implements Box{//缺省适配器新添加的中间继承类
public abstract boolean addNum(Object value);
public abstract Object getNum(int index);
public abstract Object deleteNum(int index);
public abstract int size();
public void addNum(int index,Object value){
}//若不想子类继承这个方法 可以直接自定义一个异常 或者抽象方法具体化(留一个空的方法体)
}
package test_array;
public class ArrayBox extends AbstractBox{
public boolean addNum(Object value){
return true;
}
public Object getNum(int index){
return boxDate[index];
}
public Object deleteNum(int index){
return oldValue;
}
public int size(){
return this.size;
}
//这样子类只需要实现父类中AbstractBox中的前四个方法 接口中新添加的规则子类可以不实现
}