【发布时间】:2015-07-16 19:41:03
【问题描述】:
我正在尝试创建一个 sprite 父类,它使用其中的一些方法通过在移动到子方法之前返回 null 来过滤掉一些无效条件。我认为这在用于单个方法时被称为“弹跳器模式”,但找不到任何跨父/子对象扩展的示例。
下面是一个基本的代码示例;
class parent ()
{
public void update()
{
if (this.count<0)
{
return;
}
// do parent stuff
}
}
class child extends parent ()
{
public void update()
{
super.update()
//do child stuff here
}
}
当我运行子更新方法时,我希望它运行父方法,如果计数小于 0,则停止不打扰父和子的东西。
我发现,一旦计数小于 0,父项就会停止,但子项会继续运行。这就像两个更新方法都被视为单独的函数。
我相信我需要一种将子更新方法附加到子更新方法的方法。我希望有一种简单的方法可以实现这一点,但只要我不必在每个子类中编写保镖/过滤器代码,我就会接受复杂的解决方案。
非常感谢任何帮助。
杰森
#替代解决方案
建议的代码 类父() { 公共无效更新() { 如果 (this.count
}
child_update()
{
//place hold to be overridden by child
}
}
class child extends parent ()
{
@Override
private void child_update()
{
//do child stuff here
}
}
我认为这解决了我的问题,但还没有机会测试它。当我调用子对象更新方法时,它应该被定向到父方法,该方法执行保镖/验证检查,如果适用,则运行已被子方法覆盖的子更新。子方法将设置为私有,因此它没有验证检查就不能调用。
我个人认为这是一个比提出的布尔解决方案更清洁的解决方案,但想知道其他人的想法。
谢谢
杰森
【问题讨论】:
标签: java android inheritance