Callback using Interfaces in Java

Java Programming Java8Object Oriented Programming

In the case of Event-driven programming, we pass a reference to a function which will get called when an event occurs. This mechanism is termed as a callback. Java does not support function pointers. So we can not implement the same direction. But using interfaces we can achieve the same very easily.

In the example below, we've made a callback when a button is clicked. See the steps −

  • Create an interface ClickEventHandler with a single method handleClick().

  • Create a ClickHandler class which implements this interface ClickEventHandler.

  • Create a Button class which will call ClickHandler when it's click method is called.

  • Test the application.


Live Demo

//Step 1: Create an interface for the callback method
interface ClickEventHandler {
   public void handleClick();

//Step 2: Create a callback handler
//implementing the above interface
class ClickHandler implements ClickEventHandler {
   public void handleClick() {

//Step 3: Create event generator class
class Button {
   public void onClick(ClickEventHandler clickHandler) {

public class Tester {
   public static void main(String[] args) {
      Button button = new Button();
      ClickHandler clickHandler = new ClickHandler();
      //pass the clickHandler to do the default operation

      Button button1 = new Button();
      //pass the interface to implement own operation
      button1.onClick(new ClickEventHandler() {
         public void handleClick() {
            System.out.println("Button Clicked");


Clicked Button
Updated on 18-Jun-2020 12:29:08