ну там какие поля будут от интерфейса зависит а в чем неадекватность? во многих фреймворках у моделей есть метод load() который инициализирует объект (у некоторых это работает и из конструктора) ну ок - уберу из конструктора, создам метод load(data) вопрос все равно будет о том как массово присвоиться не расписывая каждое свойство this.tarampampam = data.tarampampam
Я тут вижу два варианта либо тупо (readonly task Task) Либо через super, обявить присвоенние полей в классе Task. (readonly task Task) { super(task) } Ну или вот обжект ассайгн)