所以我正在学习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
}
};
}
}
答案 0 :(得分:2)
你只需将其传递给:
onAnimationEnd(childClass);
这是多态性的定义,孩子必须能够充当他们的父母。
从Java API中,您可以在paintComponent()
方法中看到这一点:
@Override
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
}
尽管Graphics
是从旧时间声明的参数,但现在给出了Graphics2D
对象(扩展Graphics
类),但除非你像这样投射它,它将作为{{ 1}}对象。