我试图通过创建一个包含2个子类型的堆栈来实现撤销功能。我有一个父类型userentry的堆栈,其中包含两个子类型assign和relentry。assign和relentry都是用于将值(数字和关系)插入网格表的类。例如,有一个方法调用将值作为各自的子类型插入表中 assignToTable()
以及 RelEntryToTable()
. 我正在尝试使用一个多态方法,可以从父堆栈调用这两个子类型。
parentStack.assignAndRelEntryToTable();
在为userentry创建抽象类时,我尝试了 addToPuzzle()
方法,但在尝试使用
for (UserEntry ue : stack){
puzzle.addToPuzzle(ue)
}
方法调用需要一个特定于每个子类的方法。我试过为每个子类创建一个方法调用,但是谜题本身不能从子类引用。
这里有4个类一起工作:ui、relentry、userentry和assign。我试图为ui类中的每个循环创建它们,因为它包含puzzle变量。
2条答案
按热度按时间bjg7j2ky1#
如果我没弄错你的问题,你在找
instanceof
. 它让你检查一个对象是否属于给定的类型。使用它,您可以确定userentry的子类型,转换为所需的子类型,并相应地调用其中一个方法。大概是这样的:nnvyjq4y2#
我很难完全理解你的要求,所以我将非常通用。
语法可能不是100%正确,但它应该给出一般的想法。