The title pretty much says it all.
Goes totally against When to use an interface instead of an abstract class and vice versa?
Technically, it has two non-abstract methods,
shortValue(). Prior to Java 8 interfaces couldn't have default method implementations. Only classes could.
Still, you could consider it a design flaw. It took the Java API designers a few iterations to get all of the core classes right. Witness
Vector being supplanted by