1

Screen在 libgdx 框架中有接口。

我创建了一个名为 的子类BaseLayout,在其中初始化了一些字段。

现在对于每个实际屏幕,例如 MenuScreen,我扩展了这个BaseLayout类。

我想强制这些类,例如 MenuScreen 实现两个方法 void initData(),和void addButtonsToScreen()这个怎么做?

show我在只在基类中实现的方法中调用这些方法BaseLayout

4

3 回答 3

4

我想强制这些类例如 MenuScreen 实现两个方法 void initData() 和 void addButtonsToScreen()。这个怎么做?

make BaseLayoutanabtract class和 makeinitData()addButtonsToScreen()抽象方法。

例子

public abstract class BaseLayout extends Screen
{
     public void initData();
     public void addButtonsToScreen();
}

然后你只需让子类扩展并实现这些方法..

public class ConcreteLayout extends BaseLayout
{
     public void initData()
     {
         // Some code here.
     }

     public void addButtonsToScreen()
     {
         // Some code here.
     }
}
于 2013-08-13T08:11:55.863 回答
1

请将这些方法声明为抽象的

前任 :

Anabstract method是一种在没有实现的情况下声明的方法(没有大括号,后跟分号),如下所示:

abstract void moveTo(double deltaX, double deltaY);
于 2013-08-13T08:11:34.707 回答
1

有两种方法可以做到这一点:

1-将您Baselayout的类声明为一个abstract类,并声明methods您也希望强制子类classes实现abstract

2-其他方法可能是在您BaseLayout Class的定义两个方法的接口中定义一个接口,然后Interface在您的Child类中实现它。

于 2013-08-13T08:16:31.593 回答