所以我有一个包含非特定 JPanel 的对象:
private static JPanel setPanel;
我有很多 JPanel 子类,用于我在 JFrame 上交换的不同类型的屏幕,它们的行为不同。现在,每个子类都实现了某种方法 getKeyPress()
,并且我创建了一个包含此方法的接口(interface),每个 JPanel 子类也实现了该方法。我的问题是我是否可以通过我的通用 setPanel 对象引用该方法,如: setPanel.getKeyPress()
以某种方便的方式,或者我是否必须使用其中的一个方法创建 JPanel 的子类,然后让每个子类成为该子类的子类?
最佳答案
...or do I have to create a subclass of JPanel with that one method in it and then have each subclass be a subclass of that one?
这就是您自己的MyJPanel
(或类似)类(无论是否抽象)的方法。然后,您在整个代码中使用 MyJPanel
。这可以让您在编译时检查您正在处理的子类之一,并为您提供一个方便的位置来添加更多方法(如果需要)。
你可以做
((TheInterface)setPanel).getKeyPress();
...但它很笨拙,并且您会丢失编译时代码检查(以及所有反对强制转换的常见参数)。
关于java - 使用在接口(interface)中声明的方法,而不是在类中声明的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37939872/