Я пытаюсь создать собственный метод toString() для некоторых из моих классов данных. Но я хотел бы определить переопределение fun toString только один раз.
Это будет мой суперкласс:
abstract class Id(val value: String) {
override fun toString(): String {
return value
}
}
Теперь я хочу использовать настроенный метод toString() в некоторых моих классах данных, расширив идентификатор суперкласса:
data class MyId(val v: String): Id(v)
однако это приведет к появлению вторичного поля и геттера для «v» в MyId, а это не то, что мне нужно. Использование «значения» вместо «v» дает мне проблему: «значение» скрывает член супертипа «Id». Я хотел бы повторно использовать поле «значение» и геттер, определенные в Id. Я не хочу вводить новый.
Как я могу это исправить?