Я смущен о коде ниже. Этот код написан кем-то другим, и в настоящее время я изучаю код, чтобы больше понять, как работает передача параметров в Java. код # 1Передача параметров Java
addKeyListener((KeyListener)new TAdapter());
и код # 2
addKeyListener(new TAdapter());
означают
ли то же самое и выполнять то же самое, предполагая TAdapter класс, который расширяет класс KeyAdapter? Я также замечаю, что мне необязательно явно использовать объект TAdapter в качестве KeyListener, хотя из описания метода, которое я прочитал в Eclipse, метод принимает объект KeyListener. Почему это возможно? Я сделал быстрый поиск по классу KeyAdapter из документов Java и, по-видимому, класс KeyAdapter реализует интерфейс KeyListener. Я могу с уверенностью предположить, что один из способов работы Java в передаче параметров заключается в том, что метод может принимать экземпляр класса, который наследуется от определенного класса, который реализует интерфейс с тем же именем, указанный в описании метода? Если это так, почему это также возможно?
P.S. С другой стороны, я не понимаю, почему программист назвал класс TAdapter, что означает T? Я также замечаю этот тип имен классов в другом исходном коде, но я никогда не понимал этого предполагаемого соглашения.
Я люблю вашу сторону вопрос. Вы имеете право спросить об этом. Хотя я обычно стараюсь не критиковать других программистов, я могу сказать, что «TAdapter» - ужасное имя. Похоже, он пытается адаптировать букву 'T' или что-то еще. (Да, я знаю, что это венгерская нотация для «type», но sheesh!) –
Спасибо! Я буду уверен, что никогда не приму этот таинственный букву Т, назвав свой класс. Я ненавижу выбирать вредные привычки. – Nicholas
OP не понимает концепций программирования, особенно Java. Соглашения об именах являются одним из них. –