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