Либо сделать Journey
продлить JFrame
или сделать Journey
интерфейс.
Выберите вариант, который наиболее подходит для вашей структуры объекта.
Если это имеет смысл для Journey
для продления JFrame
, тогда сделайте это. Таким образом, когда PlannedJourney
расширяет Journey
, он также наследует все, что Journey
делает от JFrame
.
Если это не имеет смысла, тогда сделайте Journey
интерфейсом, и у нас есть PlannedJourney
реализовать Journey
. PlannedJourney
не сможет наследовать какой-либо код от Journey
, но вы сможете наследовать сигнатуры методов и передавать объект в качестве Journey
в дополнение к JFrame
.
Будьте уверены, когда вы работаете с Swing, которые вы Выделив Модель из View. Ваши данные должны храниться в одном наборе объектов (Model), а компоненты Swing для отображения этих данных должны быть отдельным набором объектов (View). Это помогает инкапсулировать функции данных, отделять их от объектов GUI и обеспечивать одностороннюю зависимость от . Просмотр на модели . Модель. Считайте, что для объекта Journey
, возможно, потребуется отобразить JourneyFrame
. Таким образом, JourneyFrame
может позаботиться о его отображении и может продлить JFrame
и нести только ссылку на Journey
, которая может иметь свою собственную иерархию.
нет. в java нет множественного наследования. Проверьте http://stackoverflow.com/questions/3621290/java-multiple-inheritance, http://stackoverflow.com/questions/1038314/alternative-of-multiple-inheritance-in-java, http://stackoverflow.com/questions/3448864/how-does-multiple-inheritance-in-java-work – Bozho
Подкласс из компонентов Swing редко бывает хорошей идеей. Эти классы уже очень велики. Лучше использовать композицию (ваш класс будет иметь ссылку на фрейм). –
довольно много ответов за несколько секунд, которые вы могли бы избежать, посмотрев немного больше в уже существующих вопросах (и ответы!) :) – LudoMC