Angenommen, ich habe eine Hilfsklasse, die nur statische Methoden und Variablen enthält. z.B.:
public abstract final class StringUtils
{
public static final String NEW_LINE = System.getProperty("line.separator");
public static boolean isNotNullOrSpace(final String string)
{
return !(string == null || string.length() < 1 || string.trim().length() < 1);
}
}
In diesem Szenario macht es Sinn, die Klasse sowohl abstrakt als auch final zu machen. Abstrakt, weil es keinen Nutzen macht, ein Objekt dieser Klasse zu erstellen, da alle Methoden statisch zugänglich sind. Final, weil die abgeleitete Klasse nichts von dieser Klasse erben kann, da sie kein nicht-statiges Element hat.
C# erlaubt den static Modifizierer für solche Klassen. Warum unterstützt Java das nicht?