¿Por qué el código que inicializa una propiedad de interfaz variable no se codificará en la compilation del bloque init?

interface A { var a: Int } class AJunior : A { override var a: Int init { a = 3 } } 

No comstackrá porque

La propiedad debe inicializarse o ser abstracta

Pero está inicializado. Sé que puedo escribir:

 override var a: Int = 3 

¿Pero por qué no comstackrá el primer ejemplo? Supongo que es un error o una limitación intencional para simplificar la implementación del comstackdor, pero no estoy seguro.