【发布时间】:2018-09-13 10:49:58
【问题描述】:
我开设了两个课程 - Building 和 Warehouse。 Warehouse 扩展 Building。我创建了 Building 映射 (building_map),其中我放置了 Building 对象和 Warehouse 对象。
我想通过地图获取Warehouse的方法,但我只能看到来自Building类的东西。
building_map.get(ware_id); /*--Warehouse_function--*/;
(这是我在这里的第一篇文章,如果我在我的问题上提供的信息太少,请见谅)
编辑: 以下是我将对象添加到地图中的方式:
public static Map<String, Building> building_map = new HashMap<>();
Building bD_02 = new Building("bD_02", 2, "Duargian", 2.5, 180, 450, 100, ""
+ "i0_024!i0_029!i0_036?90!10!10!" //upgrade lv 1
+ "&"
+ "" //upgrade lv 2
+ "&"
+ "" //upgrade lv 3
+ "&");
Building bD_03 = new Warehouse("bD_03", 3, "Duargian", 2.8, 800, 2500, 1500, 2.35, 3000, ""
+ "i0_021!i0_024!i0_029?200!500!70!" //upgrade lv 1
+ "&"
+ "" //upgrade lv 2
+ "&"
+ "" //upgrade lv 3
+ "&");
building_map.put("bD_02", bD_02);
building_map.put("bD_03", bD_03);
编辑2: 谢谢,钨X!成功了,我现在可以结束话题了。
【问题讨论】:
-
请阅读 java 命名约定:名称中没有 _ 字符(除非是常量)。这不是 python ;-) 请阅读minimal reproducible example 并相应地增强您的问题。你在这里给出的那个例子根本不够,不清楚你在问什么。
-
请添加您的 building_map 的代码
-
我用 building_map 的代码更新了问题。
-
您必须使用
instanceof检查对象的类型并将其转换为Warehouse
标签: java polymorphism parent-child