Хотя ConnectionProvider
создается внутри блока stati c, его переопределенный метод не является ни static
(не может быть), ни связан с самим блоком stati c, а с экземпляром connectionProvider
.
По сути, вы реализуете метод анонимного класса. Я предполагаю, что ConnectionProvider
является интерфейсом, тогда определение класса, реализующего тот же интерфейс, будет фактически таким же, как ваш код:
static
{
ConnectionProvider connectionProvider = new MyConnectionProvider();
}
Внутренние элементы метода getConnection
не привязаны к stati c block, сам экземпляр connectionProvider
. Существует несколько вызовов, поскольку метод был вызван несколько раз из экземпляра, определенного в блоке stati c.