Abstract Method in Java with Examples (original) (raw)

Last Updated : 20 Jan, 2026

An abstract method is a method declared without an implementation (i.e., a body). It only defines the method signature, and subclasses must provide the implementation.

**Example 1: Abstract Method for Addition and Subtraction

Java `

// Abstract class abstract class ArithmeticOperation{ abstract void printInfo(); }

// Addition class class Add extends ArithmeticOperation{ void printInfo() { int a = 3, b = 4; System.out.println(a + b); } }

// Subtraction class class Sub extends ArithmeticOperation{ void printInfo() { int a = 4, b = 5; System.out.println(a - b); } }

// Driver class class GFG{ public static void main(String[] args) { ArithmeticOperation op1 = new Add(); op1.printInfo();

    ArithmeticOperation op2 = new Sub();
    op2.printInfo();
}

}

`

Syntax

abstract returnType methodName(parameterList);

**Example:

abstract void display();

Example of Java Abstract Method

**Example 1: Abstract Class with Abstract and Concrete Methods

Java `

abstract class A{

abstract void m1();

void m2() {
    System.out.println("This is a concrete method.");
}

}

class B extends A { void m1() { System.out.println("Implementation of abstract method m1."); } }

public class GFG{

public static void main(String[] args) {
    B b = new B();
    b.m1();
    b.m2();
}

}

`

Output

B's implementation of m1. This is a concrete method.

**Note: Abstract classes cannot be instantiated, but their references can point to subclass objects, enabling runtime polymorphism.

**Example 2: Abstract class with an abstract method.

Java `

import java.io.*;

abstract class Geometry { // declaring abstract method abstract void rectangle_area(int height, int width); abstract void square_area(int side); abstract void circle_area(float radius); }

// extending abstract class class Easy extends Geometry { // implementing abstract method of abstract class public void rectangle_area(int height, int width) { int ar = height * width; System.out.println("Area of rectangle=" + ar); }

// implementing abstract method of abstract class
public void square_area(int side)
{
    int ar = side * side;
    System.out.println("Area of square=" + ar);
}

// implementing abstract method of abstract class
public void circle_area(float radius)
{
    float ar = 3.14f * radius * radius;
    System.out.println("Area of circle=" + ar);
}

// main function
public static void main(String[] args)
{
    // creating instance of derived class
    Easy obj = new Easy();
    // calling abstract method
    obj.rectangle_area(12, 13);
    obj.square_area(12);
    obj.circle_area(2.2f);
}

}

`

Output

Area of rectangle=156 Area of square=144 Area of circle=15.197601

Java Abstract Method in Interface

All the methods of an interface are public abstract by default because of which we can declare abstract methods inside an interface.

Java `

interface Multiply { int twoVar(int a, int b); int threeVar(int a, int b, int c); }

class Demo implements Multiply {

public int twoVar(int a, int b) {
    return a * b;
}

public int threeVar(int a, int b, int c) {
    return a * b * c;
}

public static void main(String[] args) {
    Multiply m = new Demo();
    System.out.println(m.twoVar(10, 20));
    System.out.println(m.threeVar(10, 20, 30));
}

}

`

Final Method in Abstract Class

As we have mentioned that we cannot use final with abstract Method as a modifier but we can create a Final method in abstract class.

Java `

abstract class Geometry {

abstract void rectangleArea(int h, int w);

final void rectanglePerimeter(int h, int w) {
    System.out.println("Perimeter = " + 2 * (h + w));
}

}

class Easy extends Geometry {

void rectangleArea(int h, int w) {
    System.out.println("Area = " + (h * w));
}

public static void main(String[] args) {
    Easy e = new Easy();
    e.rectangleArea(12, 13);
    e.rectanglePerimeter(12, 13);
}

}

`

Output

Area = 156 Perimeter = 50