相反,它正在调用Array类add(),它正在调用ArrayCount类add()

时间:2018-09-25 07:06:30

标签: java testing

我想知道Java中脆弱的基类问题的原因。

这是代码,即使我已给出在父类中触发方法的指令,我也找不到触发子类方法的原因

在公共类Array

public class Array {
    private ArrayList<Object> a = new ArrayList<Object>();

    public void add(Object element)
    {
        a.add(element);
    }

    public void addAll(Object elements[])
    {
        for (int i = 0; i < elements.length; ++i)
            add(elements[i]);
    }
}

在ArrayCount类中...该类负责存储列表的计数

public class ArrayCount extends Array {
    public int count = 0;

    @Override
    public void add(Object element)
    {
        super.add(element);
        ++count;
    }

    @Override
    public void addAll(Object elements[])
    {
        super.addAll(elements);
        count += elements.length;
    }
}

主要类别如下

public class Main {

    public static void main(String[] args) {

        ArrayCount ac = new ArrayCount();
        Object [] objArray = new Object[7];
        objArray[0] = "xxx";
        objArray[1] = "xxx";
        objArray[2] = "xxx";
        objArray[3] = "xxx";
        objArray[4] = "xxx";
        objArray[5] = "xxx";
        objArray[6] = "xxx";

        ac.addAll(objArray);
        System.out.println("count is : " + ac.count);
        //COUNT IS 14 NOT 7
    }
}

0 个答案:

没有答案