Der Hauptgrund für abstrakte Klassen ist, dass von ihnen kein Objekt erzeugt werden kann. Sie dienen als Superklassen für andere Klassen.

Abstrakte Klasse definieren

public abstract class Klasse{}

Abstrakte Klassen verwenden

public class SubKlasse extends Klasse{}

Abstrakte Methoden

Ist eine Methode abstrakt muss diese in der Subklasse definiert werden.

public abstract class Klasse{
	private int zahl;
	public int getZahl(){
		return this.zahl;
	}
	public abstract void setZahl(int inputZahl);
}
 
public class SubKlasse implements Klasse{
	@Override
	public void setZahl(int inputZahl){
		this.zahl = inputZahl;
	}
}

Ist eine Methode nicht abstrakt, muss sie auch nicht überschrieben werden. Ist eine Methode abstrakt muss die ganze Klasse abstrakt sein.