Can we define an abstract class with no abstract methods in Java?

Yes, we can declare an abstract class with no abstract methods in Java.

  • An abstract class means that hiding the implementation and showing the function definition to the user.
  • An abstract class having both abstract methods and non-abstract methods.
  • For an abstract class, we are not able to create an object directly. But Indirectly we can create an object using the subclass object.
  • A Java abstract class can have instance methods that implement a default behavior.
  • An abstract class can extend only one class or one abstract class at a time.
  • Declaring a class as abstract with no abstract methods means that we don't allow it to be instantiated on its own.
  • An abstract class used in Java signifies that we can't create an object of the class directly.


abstract class AbstractDemo { // Abstract class
   private int i = 0;
   public void display() { // non-abstract method
      System.out.print("Welcome to Tutorials Point");
public class InheritedClassDemo extends AbstractDemo {
   public static void main(String args[]) {
      AbstractDemo demo = new InheritedClassDemo();

In the above example, we have not defined an abstract method in AbstractDemo class. The compiler doesn't throw any compile-time error.


Welcome to Tutorials Point