Jump to content

Java Programming/Keywords/abstract

From Wikibooks, open books for an open world

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. Because an abstract class can't directly be instantiated, you must either instantiate a concrete sub-class or 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.