fork download
  1. import java.util.*
  2.  
  3. // Объявляем интерфейс с обобщенными функциями
  4. interface Printable {
  5. val value: Int
  6. fun printValue()
  7. }
  8.  
  9. // Реализуем интерфейс в ваших классах
  10. data class A(override val value: Int) : Printable {
  11. override fun printValue() {
  12. println(value)
  13. }
  14. }
  15.  
  16. data class B(override val value: Int) : Printable {
  17. override fun printValue() {
  18. println(value)
  19. }
  20. }
  21.  
  22. fun main(args: Array<String>) {
  23. val a = A(42)
  24. val b = B(123)
  25.  
  26. a.printValue() // Выведет значение из A
  27. b.printValue() // Выведет значение из B
  28.  
  29. }
Success #stdin #stdout 0.09s 36512KB
stdin
Standard input is empty
stdout
42
123