我有4个独立的类UI,Parent,child1和child2。我有一个同时包含child1和child2的父堆栈。我试图在遍历堆栈时调用一个方法,该方法会根据它是child1类型还是child2类型而发生变化。
我曾尝试在parent中创建一个抽象方法,并在child1和child2中覆盖该方法,但它指出method不覆盖或实现来自超类型的方法。
我曾尝试在parent中创建一个公共的空方法,并覆盖每个子实例中的方法,但是当我从UI中的main调用该方法时,它会调用空方法。
我通过查看堆栈中的instanceof找到了一种变通方法,该方法有效,但后来在程序中尝试保存/加载数据时遇到了问题。请看下面的粗略代码和任何问题,让我知道。
public abstract class parent {
public void addToPuzzle(){};
}
public class child1 extends parent {
public void addToPuzzle(abc)
}
public class child2 extends parent {
public void addToPuzzle(wxyz)
}
public class ui{
public void undoMove(){
for(parent p : oldStack){
p.addToPuzzle();
}
}
}发布于 2020-12-05 22:44:55
父类中的方法是public void addToPuzzle(),而子类有一个接受参数public void addToPuzzle(abc)的不同函数。
当满足以下条件时,子类将覆盖父类的方法:
https://stackoverflow.com/questions/65158037
复制相似问题