private HashMap<String, SuperClass> mapOfRoles = new HashMap();
public void X()
{
mapOfRoles.put(String, SubClassA);
mapOfRoles.put(String, SubClassB);
}
错误:没有找到适合 put(String,Wolf) playerRolesMap.put(listOfPlayers.get(0), new Wolf(listOfPlayers.get(0))) 的方法;方法HashMap.put(String,Role)不适用(实参Wolf无法通过方法调用转换为Role)
Wolf 是 Role 的子类
我正在尝试编写一个程序,在该程序中我需要访问写入子类的方法,但是由于无法将子类转换回超类,因此无法编译,编译器会说:实际参数 subclassA 无法转换为超类通过方法调用转换)
目前我看不到另一种方法来实现我的代码以动态检索对象。大多数时候,为子类调用的方法都包含在超类中,但是每个子类都有一些只与它相关的方法。
是否存在可以纠正的设计缺陷。