private static final ParentClass ourInstance=new ParentClass();
Когда вы объявляете поле класса как окончательное, вы не можете переназначить его значение после инициализации.
Это означает, что вы не можете выполнить код ниже:
ParentClass otherInstance = new ParentClass();
ourInstance = otherInstance; // Not allowed as ourInstance is final.
Но вы можете выполнить следующие операции, т.е. вы можете изменить поля нашего экземпляра, вызвав его методы установки: - например,
ourInstance.setSomeMethod(someValue); // Allowed as you are not modifying object's reference but only its properties which are not final.