使用在接口中声明的方法,但不使用类

时间:2016-06-21 08:59:42

标签: java swing class user-interface interface

所以我有一个包含非特定JPanel的对象:     private static JPanel setPanel;

我有很多JPanel子类用于不同类型的屏幕我在我的JFrame上交换,其表现不同。现在,这些子类中的每一个都实现了某个方法getKeyPress(),并且我创建了一个包含此方法的接口,这些JPanel子类中的每一个都实现了该方法。我的问题是我是否可以通过我的通用setPanel对象引用该方法,如:setPanel.getKeyPress()以某种方便的方式引用该方法,或者我是否必须使用其中的一个方法创建JPanel的子类,然后拥有每个子类是那个的子类?

1 个答案:

答案 0 :(得分:1)

  

...或者我是否必须使用其中的一个方法创建JPanel的子类,然后让每个子类成为该子类的子类?

这是你要去的方式,你自己的MyJPanel(或类似的)类(抽象与否)。然后,在整个代码中使用MyJPanel。这为您提供了编译时检查,使您可以处理其中一个子类,并在需要时为您提供方便的位置来添加更多方法。

可以

((TheInterface)setPanel).getKeyPress();

...但是它很笨拙,你丢失了编译时代码检查(以及反对强制转换的所有常见参数)。