Suppose I\'ve a utility class which contains only static methods and variables. e.g:
public abstract final class StringUtils
{
public static final String
A final class can't be extended, an abstract class needs to be extended in order to be instantiated. Therefore, a final abstract class would be a logical contradiction.
If your class just have static methods, maybe you should just hide its constructor, by defining it as private.-
private StringUtils() {
}