I have the following classes:
public abstract class ParentClass
{
public ParentClass()
{
throw new RuntimeException(\"An ID must be specified
Short answer: Constructors are not inherited in Java.
From the JLS:
Constructor declarations are not members. They are never inherited and therefore are not subject to hiding or overriding.
This means you have to declare the constructors needed for each subclass and call the corresponding super constructor. Even if it has the same signature it doesn't count as overriding.