如何强制子类在java中实现某些方法?
我在libgdx框架中有如何强制子类在java中实现某些方法?,java,libgdx,Java,Libgdx,我在libgdx框架中有屏幕界面 我创建了一个名为BaseLayout的子类,其中初始化了一些字段 现在,对于每个实际屏幕,例如菜单屏幕,我扩展了这个BaseLayout类 我想强制这些类(例如MenuScreen)实现两种方法 void initData(),以及void addButtonsToScreen()怎么做? 我在show方法中调用这些方法,这些方法仅在基类BaseLayout中实现。请将这些方法声明为 例: 抽象方法是一种声明时不带实现(不带大括号,后跟分号)的方法,如下所示:
屏幕
界面
我创建了一个名为BaseLayout
的子类,其中初始化了一些字段
现在,对于每个实际屏幕,例如菜单屏幕,我扩展了这个BaseLayout
类
我想强制这些类(例如MenuScreen)实现两种方法
void initData()
,以及void addButtonsToScreen()
怎么做?
我在
show
方法中调用这些方法,这些方法仅在基类BaseLayout
中实现。请将这些方法声明为
例:
抽象方法
是一种声明时不带实现(不带大括号,后跟分号)的方法,如下所示:
abstract void moveTo(double deltaX, double deltaY);
请将这些方法声明为 例:
抽象方法
是一种声明时不带实现(不带大括号,后跟分号)的方法,如下所示:
abstract void moveTo(double deltaX, double deltaY);
我想强制这些类(例如MenuScreen)实现两个方法void initData()和void addButtonsToScreen()。如何做到这一点
使BaseLayout
成为abtract类
并使initData()
和addButtonsToScreen()成为抽象方法
范例
然后,您只需使子类扩展并实现这些方法
public class ConcreteLayout extends BaseLayout
{
public void initData()
{
// Some code here.
}
public void addButtonsToScreen()
{
// Some code here.
}
}
我想强制这些类(例如MenuScreen)实现两个方法void initData()和void addButtonsToScreen()。如何做到这一点
使BaseLayout
成为abtract类
并使initData()
和addButtonsToScreen()成为抽象方法
范例
然后,您只需使子类扩展并实现这些方法
public class ConcreteLayout extends BaseLayout
{
public void initData()
{
// Some code here.
}
public void addButtonsToScreen()
{
// Some code here.
}
}
有两种方法可以做到这一点:
1-将您的Baselayout
类声明为abstract
类,并声明希望强制子类实现为abstract
的方法
2-另一种方法是在BaseLayout
类中定义一个定义这两种方法的接口,然后在子类中实现该接口。有两种方法可以做到这一点:
1-将您的Baselayout
类声明为abstract
类,并声明希望强制子类实现为abstract
的方法
2-另一种方法是在BaseLayout
类中定义一个定义这两种方法的接口,然后在子类中实现该接口。但是我的BaseLayout类不是抽象的。为什么不能使用abtract
?对不起,我的错误,我可以it@user494461记住,抽象类不能被实例化,但它们可以被子类化。
。但是我的BaseLayout类不是抽象的。为什么你不能使它成为abtract
?对不起,我的错误,我可以it@user494461记住,抽象类不能被实例化,但它们可以被子类化。