Eine Methode, von der nur die Signatur und nicht der Rumpf definiert
ist.
Erbende Klassen können die Implementierung ``nachliefern''.
abstract class Bench { abstract void benchmark(); public long repeat(int count) { long st = System.currentTimeMillis(); for (int i = 0; i < count; i++) benchmark(); return System.currentTimeMillis() - st; } } class Benchmark extends Bench { void benchmark() { // leere Methode } public static void main (String[] args) { int count = Integer.parseInt(args[0]); long time = new Benchmark().repeat(count); System.out.println(count + " methods in " + time + " milliseconds"); } }
Regeln für abstrakte Methoden und Klassen:
Typisches Anwendungsmuster: Eine Klasse bezieht ``Expertenwissen'' oder spezielles Verhalten von ihren Unterklassen.
Das Design der Klasse wird angegeben, nicht aber die (vollständige) Implementierung.