Я перефазировал некоторый унаследованный код, но был озадачен дизайнерским решением и не мог определить правильные условия для этого Google. Мой предшественник будет использовать блоки вроде этого:
public class ChildClass extends ParentClass {
{
inheritedVar = "someVal";
}
public ChildClass(){ /* constructor exists */ }
// rest of code
}
В чем смысл объявления блока кода без ключевого слова? Он не ведет себя как статический блок, я не верю. Это альтернатива установке в конструкторе? Будет ли это иметь какой-то эффект, если использовался factory (что в данном случае это не так)? Я нашел связанную с этим тему в что происходит в C, но аргументация (scope и variable) не показалась релевантной Java.
Любые мысли или идеи о "почему" этого будут оценены. Это достаточно просто, чтобы переоценить это, мне просто любопытно в этот момент.