Подтвердить что ты не робот

Что это за переопределение метода, вызываемого в Java?

Я относительно новичок в Java, и я использую новый API. Я столкнулся с этим методом переопределения, и я не уверен, что это называется:

public void exampleMethod() {
    Button loginButton = new Button("login"){
       public void onSubmit(){
          //submit code here
       }
    };
}

Из того, что я понимаю, это переопределяет метод onSubmit класса Button. Раньше я никогда не сталкивался с этим типом переопределения. Есть ли определенное имя для этого? Я хочу больше узнать об этом, но я не могу его найти. Все мои поисковые запросы до сих пор приводят к регулярному переопределению метода, создавая новый класс, с которым я уже знаком.

Я был бы признателен, если бы кто-то мог указать мне в правильном направлении.

Спасибо.

4b9b3361

Ответ 1

Это анонимный внутренний класс.

В приведенном выше примере вместо создания private class, который расширяет Button, мы создаем подкласс Button и обеспечиваем реализацию переопределенного метода в соответствии с остальной частью кода.

Поскольку этот новый класс создается "на лету", он не имеет имени, следовательно анонимный. Поскольку он определен внутри другого класса, это анонимный внутренний класс.

Это может быть очень удобный ярлык, особенно для классов Listener, но он может сделать ваш код трудным для выполнения, если вы увлечены, а определения метода в строке слишком длинны.

Ответ 2

Это анонимный внутренний класс . В основном он создает новый класс, который получается из указанного (Button в этом случае, хотя вы можете использовать тот же метод для реализации интерфейсов) и переопределяет соответствующие методы. Он может содержать и другие методы, но они будут доступны только в этом классе.

Класс имеет доступ к конечным локальным переменным в одном и том же методе, и если вы пишете метод экземпляра, он также имеет неявную ссылку на this (так что вы можете вызвать другие методы в своем "основном" классе).

Ответ 3

Это анонимный внутренний класс.

Дополнительная информация: Анонимные классы