android Методы переопределения Java при создании нового экземпляра класса




2 Answers

Это не совсем своего рода кодирование. Это анонимный класс Java. Это очень распространено в Android и вообще с прослушивателями событий и такими вещами.

Для получения дополнительной информации вы можете прочитать эту ссылку (возможно, не самую лучшую):

Анонимные внутренние классы очень полезны в некоторой ситуации. Например, рассмотрим ситуацию, когда вам нужно создать экземпляр объекта без создания подкласса класса, а также выполнить дополнительные задачи, такие как перегрузка метода.

О вашем втором вопросе ключевое слово protected означает, что метод доступен только для подклассов, поэтому можно переопределить метод.

java android oop

Это может быть просто для опытных разработчиков Java, но я просто не могу понять это. Я прочитал сообщение отсюда. Код был

View v = new View(this) {
    @Override
    protected void onDraw(Canvas canvas) {
        System.out.println("large view on draw called");
        super.onDraw(canvas);
    }
};

Это был вопрос Android. Здесь пользователь создает экземпляр представления и переопределяет метод в одной строке. Есть ли название для такого рода кодирования?

Мое второе сомнение в том, что он переопределяет защищенный метод из другого пакета. Не защищен личный секретный пакет. Я знаю, что это сработает, когда я попробую, но я просто не мог понять, почему это сработало. Так почему же этот код работает?

Я попытался сделать это и искать в SO, прежде чем спрашивать, но не смог найти ответ.




Так же, как и другие, здесь уже ответили, это называется анонимным классом, а переопределение защищенных методов является законным, так как защищенные методы видны дочерним классам и классам в одном пакете .






Related