public abstract class Agent<E extends Human> extends SuperAgent<E>{
}
我有
public class Soldier extends Agent<Platoon>
和
public class Platoon extends Human
有没有办法将人类施放给士兵?或者使用方法instanceof
这两种类型?甚至在Human
中有一个Soldier
参数?
答案 0 :(得分:1)
您必须具有不同的类型层次结构:
SuperAgent<E> <= Agent<E extends Human> <= Soldier
Human <= Platoon
有没有办法将人类施放给士兵?
它们不属于同一层次结构。 Human
无法成为Soldier
。
对这两种类型使用方法instanceof吗?
您始终可以在对象和类之间使用instanceof
。
甚至在士兵中有人参数?
您可以,但您已将参数修改为Platoon
。您必须声明Soldier
之类的:
public class Soldier<H extends Human> extends Agent<H>
我认为泛型的概念仍然让您感到困惑,您应该阅读a little bit of documentation。
答案 1 :(得分:0)
这种关系并不是很清楚。 人是一个阶级,代理人也是另一个阶级和士兵。 同时代理人是一种人,士兵也是如此。 你可以像这样声明他们: 界面人 抽象类SuperAgent实现Human Abstarct类代理扩展了SuperAgent 阶级士兵实施人类
答案 2 :(得分:-1)
要将一个类强制转换为另一个类,它们必须位于同一个继承树中。然后,您可以upcast
或downcast
。