如何将子类传递给需要超类作为参数的方法

时间:2013-12-11 22:46:53

标签: java

所以我正在学习Java,而且我有一个需要超类作为参数的接口方法。我想将子类作为参数传递。任何人都知道一个简单的方法来做到这一点。父类来自我正在使用的动画库,并从中创建了自己的子类。

例如:

public class B extends A {

    public void UpdateAnimation() {
        final Interface intefaceMethod = new Interface() {
            @Override
            public void onAnimationEnd(//**How to pass child class?**//) {
                //child class stuff to do at end of animation
            }
        };
    }

}

1 个答案:

答案 0 :(得分:2)

你只需将其传递给:

onAnimationEnd(childClass);

这是多态性的定义,孩子必须能够充当他们的父母。

从Java API中,您可以在paintComponent()方法中看到这一点:

@Override
public void paintComponent(Graphics g) {    
   Graphics2D g2d = (Graphics2D) g;    
}

尽管Graphics是从旧时间声明的参数,但现在给出了Graphics2D对象(扩展Graphics类),但除非你像这样投射它,它将作为{{ 1}}对象。