Я добавил это к init
в Vault.kt
в вашем примере:
if (owner == null) println("owner is null")
И это действительно ноль.
Я думаю, причина в том, что вы объявили этосвойство (owner
) как open
, но вы ссылаетесь на него при инициализации суперкласса.Так что в этот момент он будет нулевым, потому что суперкласс попытается получить значение из подкласса, но подкласс еще не будет инициализирован.Это объясняется немного подробнее здесь .