有了接口可以做统一的规则约束
    每一个子类都实现同一个规则 用户使用起来很容易
    如果按照上述方式来实现 接口一旦添加了新的规则 所有的子类都需要跟着添加新的方法
    所以就有了 缺省适配器

    1. package test_array;
    2. public interface Box {//接口
    3. public boolean addNum(Object value);
    4. public Object getNum(int index);
    5. public Object deleteNum(int index);
    6. public int size();
    7. public void addNum(int index,Object value);//接口新添加的规则
    8. }


    1. package test_array;
    2. public abstract class AbstractBox implements Box{//缺省适配器新添加的中间继承类
    3. public abstract boolean addNum(Object value);
    4. public abstract Object getNum(int index);
    5. public abstract Object deleteNum(int index);
    6. public abstract int size();
    7. public void addNum(int index,Object value){
    8. }//若不想子类继承这个方法 可以直接自定义一个异常 或者抽象方法具体化(留一个空的方法体)
    9. }
    1. package test_array;
    2. public class ArrayBox extends AbstractBox{
    3. public boolean addNum(Object value){
    4. return true;
    5. }
    6. public Object getNum(int index){
    7. return boxDate[index];
    8. }
    9. public Object deleteNum(int index){
    10. return oldValue;
    11. }
    12. public int size(){
    13. return this.size;
    14. }
    15. //这样子类只需要实现父类中AbstractBox中的前四个方法 接口中新添加的规则子类可以不实现
    16. }