使子类不断添加到父方法

时间:2015-08-06 14:51:04

标签: java inheritance

此问题是以下问题的扩展:Require override of method to call super

我希望我的超类的所有子类添加到 其父 update()方法的实现。由于这在Java中是不可能的,因此这是我的选择:

    public class MySuperClass{
        public final void update{
            // common updates for all classes implementing mySuperClass
            updateSub0();
        }

        protected void updateSub0{
            // method for next subclass to override
        }
    }

    public class SubClass0 extends mySuperClass{
        @Override
        protected void updateSub0{
            // common updates for all classes implementing subClass0
        }

        protected void updateSub1{
            // method for next subclass to override
        }
    }

    public class SubClass1 extends SubClass0{
        @Override
        protected void updateSub1{
            // common updates for all classes implementing subClass1
        }

        protected void updateSub0{
            // method for next subclass to override
        }
    }

    ...

这种方法会被认为是不合适的吗?如果是这样,你能解释一下吗?

任何其他建议也将不胜感激。

其他信息

由于我在寻求建议,我会尝试提供更多信息。基本上,我正在研究一个整个屏幕由平面(表面)组成的系统。现在,每种类型的平面都有一个位置,一个大小和一个目标位置(用于平滑重新定位),因此Plane类(来自问题的mySuperClass)将更新其{{1}中的位置方法。

对于可由用户按压的飞机,我会update Plane(问题PlanePressable)。除了位置,大小和目标位置之外,SubClass0还有一个偏移字段,用于存储有关按下的位置的信息。因此,除了更新位置之外,PlanePressable还需要更新偏移量,因此需要PlanePressable方法。

1 个答案:

答案 0 :(得分:0)

您必须使用interitance和super关键字,如下所示:

public class subClass0 extends mySuperClass {
    @Override
    protected void updateSub0{
        super.update() // To call parent's update method
        // common updates for all classes implementing subClass0
    }

    protected void updateSub1{
        // method for next subclass to override
    }
}