Java Programming/Keywords/abstract

abstract is a Java keyword. It can be applied to a class and methods. An abstract class cannot be directly instantiated. It must be placed before the variable type or the method return type. It is recommended to place it after the access modifier and after the static keyword. A non-abstract class is a concrete class. An abstract class cannot be final.

Only an abstract class can have abstract methods. An abstract method is only declared, not implemented:

Computer code Code listing 1: AbstractClass.java
public abstract class AbstractClass {
    // This method does not have a body; it is abstract.
    public abstract void abstractMethod();
 
    // This method does have a body; it is implemented in the abstract class and gives a default behavior.
    public void concreteMethod() {
        System.out.println("Already coded.");
    }
}

An abstract method cannot be final, static nor native. Either you instantiate a concrete sub-class, either you instantiate the abstract class by implementing its abstract methods alongside a new statement:

Example Code section 1: Abstract class use.
AbstractClass myInstance = new AbstractClass() {
    public void abstractMethod() {
        System.out.println("Implementation.");
    }
};

A private method cannot be abstract.