Java: создание графического интерфейса.Импортировать или расширить JFrame? - PullRequest
1 голос
/ 27 июня 2011

Я сделал GUI самостоятельно, который расширяет JFrame. И я увидел программный код от продвинутого программиста, который импортирует JFrame. Я мог бы знать разницу между импортом и расширением. Но какое преимущество дает реализация такого рода?

1 Ответ

2 голосов
/ 27 июня 2011

Под словом "импорт" я предполагаю, что вы имеете в виду, что класс вашего друга-программиста использует JFrame, тогда как ваш класс равен JFrame. Я не думаю, что расширение JFrame является «неправильным», но мой предпочтительный подход заключается в создании и настройке JFrame, а не в его расширении. Если есть действительно какой-то защищенный метод, к которому вам нужен доступ, вы можете расширить его, но я уверен, что в большинстве случаев просто создание и настройка стандартного JFrame - это правильно - мне никогда не приходилось расширять его.

Другими словами, наследуя JFrame без необходимости делать это, вы просто усложняете свою систему. Это тот же аргумент, который вы использовали бы при выборе наследования по сравнению с агрегацией с любым другим классом. Чтобы выяснить, что правильно, вам нужно спросить себя, действительно ли класс, который вы пишете, , является JFrame, который является виджетом окна. Я подозреваю, что в большинстве случаев вы пишете Swing-приложение, которому нужен JFrame, но которое не является само по себе - это Swing-приложение с какой-то другой целью.

...