Java – How To Invoke Parent Class Methods using Java Reflection

This post shows you how to call or invoke methods of parent/super class by using Java Reflection.

Let’s look at the below code example to see how it works.

ReflectionExample.java
package com.bytenota;

import java.lang.reflect.Method;


class A extends B {
    public void sayHello() {
        System.out.println("Hello");
    }
}

class B {
    public void sayGoodbye() {
        System.out.println("Goodbye");
    }
}


public class ReflectionExample {
    
    public static void main(String[] args) throws Exception {
        // create a new instance 
        Object aInstance = Class.forName("com.bytenota.A").getDeclaredConstructor(null).newInstance(null);
        
        // invoke sayGoodbye() method of super class B
        Method method = aInstance.getClass().getSuperclass().getDeclaredMethod("sayGoodbye", null);
        method.invoke(aInstance, null);
    }
    
}

In the above code, we create class A that extends class B, then use reflection to invoke sayGoodbye() method of class B from an instance of class A.

Output:

Goodbye