В настоящее время с Java 8, я действительно предпочитаю что-то вроде этого:
boolean atLeastTwo(boolean a, boolean b, boolean c) {
return Stream.of(a, b, c).filter(active -> active).count() >= 2;
}
это зависит от того, что вы хотите сделать. Если вы хотите, чтобы был вызван метод base.CreateChildControls (), а затем вы хотите выполнить какое-то настраиваемое действие до или после вызова метода, вы можете это сделать.
Если вы хотите иметь полный контроль над тем, что происходит когда вызывается CreateChildControls, вы можете просто игнорировать его вызов.
Тот факт, что он присутствует по умолчанию, является лишь небольшой подсказкой для вас.
Это просто вопрос, хотите ли вы полностью заменить поведение или добавить поведение.
Для чего-то вроде CreateChildControls вы, вероятно, сохраните вызов базового класса.
Это зависит от того, хотите ли вы заменить или завершить базовую реализацию ... в большинстве случаев вам следует вызвать базовую реализацию (и вы определенно должен сделать это в случае метода CreateChildItems
...)