interface A { var a: Int } class AJunior : A { override var a: Int init { a = 3 } } It won't compile because
Property must be initialized or be abstract
But it is initialized. I know I can write:
override var a: Int = 3 But why won't the first example compile? My guess would be that it is a bug or an intentional limitation to simplify compiler implementation, but I'm not sure.