Здравствуйте, rus blood, Вы писали:
RB>Звучит, как то, что нужно.
RB>Можете показать пример?
Как-то так (ideone):
// Объявляем интерфейс с обобщенными функциями
interface Printable {
val value: Int
fun printValue()
}
// Реализуем интерфейс в ваших классах
data class A(override val value: Int) : Printable {
override fun printValue() {
println(value)
}
}
data class B(override val value: Int) : Printable {
override fun printValue() {
println(value)
}
}
fun main() {
val a = A(42)
val b = B(123)
a.printValue() // Выведет значение из A
b.printValue() // Выведет значение из B
}
В этом примере мы создали интерфейс
Printable, который содержит общие поля и функцию
printValue(). Затем классы
A и
B реализуют этот интерфейс, и мы можем вызывать функцию
printValue() на объектах обоих классов. Каждый из них будет работать с полем
value внутри своего класса.
Такой подход позволяет вам обобщить операции, выполняемые над общими полями в ваших классах, сохраняя при этом индивидуальные особенности каждого класса.
...<< Dementor 1.4.4 ✪ Lets Play a Game ⚀⚀⚂⚃⚄>>