我在libgdx框架中有Screen
接口。
我创建了一个名为BaseLayout
的子类,我在其中初始化了一些字段。
现在每个实际的屏幕,例如MenuScreen我扩展了这个BaseLayout
类。
我想强制这些类,例如MenuScreen实现两种方法
void initData()
和void addButtonsToScreen()
。 怎么做?
我在仅在基类show
中实现的BaseLayout
方法中调用这些方法。
答案 0 :(得分:4)
我想强制这些类,例如MenuScreen实现两个方法void initData()和void addButtonsToScreen()。怎么做?
让BaseLayout
成为abtract class
并制作initData()
和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.
}
}
答案 1 :(得分:1)
请将这些方法声明为abstract
前:
abstract method
是一个声明没有实现的方法(没有大括号,后跟分号),如下所示:
abstract void moveTo(double deltaX, double deltaY);
答案 2 :(得分:1)
有两种方法可以做到这一点:
1-将您的Baselayout
班级宣布为abstract
班级,并声明您要强制孩子methods
强制classes
为abstract
。
2 - 其他方式可能是在BaseLayout
Class
中定义一个定义两种方法的界面,然后在Interface
类中实现Child
。