У меня есть два класса, один расширяет другой.Большинство функций в родительском классе возвращают либо себя (после изменения объекта, вызвавшего функцию), либо новый объект того же типа.Предполагается, что дочерний класс разделяет эти функции, однако он должен возвращать объект дочернего типа.
Очевидное решение этой проблемы - просто переопределить каждую функцию и преобразовать их в объект дочернего типа, но я не хочу делать это каждый раз, когда создаю дочерний класс.
Я провел поиск и нашел некоторые решения с использованием универсальных функций.Тем не менее, они либо нуждаются в дополнительном аргументе Class<T>
, либо потенциально могут вызвать ошибку приведения типа.
Есть ли способ создать функцию в родительском классе, чтобы объект родительского или дочернего типа мог возвращать сам себя или объект того же типа?