继承和覆盖 - 从BaseClass调用覆盖SubMethod

时间:2017-03-27 20:36:14

标签: c++ inheritance

public static Map<String,Object> mixLists(List<?>...lists){
    Map<String,Object> map = new HashMap<String,Object>();

    for (int i = 0;i < lists.length;i++){
        if (!lists[i].isEmpty())
            map.put(lists[i].get(0).getClass().getName(), lists[i]);
    }
    return map;
}

输出:&#34; Base&#34;

我需要更改哪些内容才能使 Base 调用 Sub 方法而不是Base?

这可能是重复和初学者问题,但我无法找到这个问题的答案。

同样建议获得更好的头衔也是值得欢迎的,因为目前可能是错误的。

1 个答案:

答案 0 :(得分:4)

a)因为标准是这样说的。

b)哲学上,因为此时Sub没有调用它的构造函数(继承对象是以深度优先的方式构造的),所以调用Sub版本的method会让Sub的作者感到惊讶。