Разница val и var в полиморфизме Kotlin
В чем заключается разница между var и val, если у меня есть открытый класс, в котором я пропишу свойство open (var/val) x = 1,а затем в наследуемом подклассе использую override (var/val) x = 2, результат ведь будет одинаковый и код скомпилируется, или я что-то упустил? В чем разница?