在Java中,可以使用反射來調用父類的方法或字段,同時也可以使用super關鍵字來訪問父類的方法或字段。下面是一個示例,演示了如何結合super關鍵字和反射來調用父類的方法:
import java.lang.reflect.Method;
class Parent {
public void sayHello() {
System.out.println("Hello from Parent");
}
}
class Child extends Parent {
@Override
public void sayHello() {
try {
Method method = Parent.class.getDeclaredMethod("sayHello");
method.invoke(super, null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.sayHello();
}
}
在上面的示例中,Child類繼承自Parent類,并且重寫了Parent類的sayHello方法。在Child類的sayHello方法中,使用反射獲取Parent類的sayHello方法,并通過method.invoke(super, null)來調用父類的sayHello方法。最終輸出結果為:
Hello from Parent