【发布时间】:2021-03-13 02:31:47
【问题描述】:
我有三个类,一个超类、一个子类和一个测试类。 SuperClass 是抽象的,SubClass 是 SuperClass 的扩展,测试类与它们中的任何一个都没有关系。 所以
public abstract class SuperClass {...}
public class SubClass extends SuperClass {...}
public class TesterClass {...}
SuperClass 和 SubClass 都有一个 toString() 方法,所以看起来更像
public abstract class SuperClass {
public String toString(){...};
...
}
public class SubClass extends SuperClass {
public String toString(){...};
...
}
public class TesterClass {...}
我需要做的是在测试器类中使用 SuperClass 的 toString() 方法。我尝试将子类和对象从子类转换为超类并使用那里的方法,但最终使用子类中的 toString() 方法。 (在我尝试使用一点反射来查看 Java 认为该对象是哪个类之后,即使在强制转换之后,它看起来也认为它仍然是子类)。我曾想过尝试使用反射直接从 SuperClass 中获取我想要的方法,然后使用 invoke() 调用对象,但这似乎是一个非常混乱的解决方案。
任何帮助都会有很大帮助,即使它只是将我指向一个我还没有听说过的概念。谢谢!
【问题讨论】:
标签: java oop inheritance reflection abstract-class