Beginner question - Herança - por que meu parâmetro construtor de idade não é usad

Pergunta noob aqui, estou trabalhando no meu caminho através de um iniciante da Udemy Kotlin curso e não consigo entender por que meu parâmetro de idade não é usado quando uso minha classe derivada, mas funcionará quando minha classe base for usad

Person Class

open class Person(open var firstname: String, open var surname: String,
          open var age: Int) {

val thisyear: Int = Calendar.getInstance().get(Calendar.YEAR)

val dob = thisyear - age

fun printperson() {

    println("$firstname $surname was born in $dob")

}
}

Student Class

class Student(override var firstname: String, override var surname: 
                String, override var age: Int, val studentID: Int):    
                    Person(firstname, surname, age) {

fun returnDetails() {

    println("Hello $firstname, your Student ID is: $studentID")
}
}

A Principa

fun main(args: Array<String>) {

val studentMike = Student(firstname = "Mike", 
                  surname = "Stand", age = 67, studentID = 8899)

studentMike.printperson()
studentMike.returnDetails()

val personBill = Person(firstname = "Bill", surname = "Hook", age = 34)
personBill.printperson()

}

Saíd

Mike Stand was born in 2018
Hello Mike, your Student ID is: 8899
Bill Hook was born in 1984

Como você pode ver, Bill era um uso direto do método na Person Person, enquanto Mike era uma chamada indireta, o parâmetro de idade deveria ter sido herdado da Person Person por meio da Student Student ...

Olhando para os documentos oficiais do Kotlin, parece que o problema está relacionado ao " Ordem de inicialização da classe derivada "mas por toda a minha vida não consigo entender como corrigir isso.

Obrigado pela ajuda

@PS pede desculpas pela terminologia imprecisa. Sempre contente com os indicadores para fazer melhor.

questionAnswers(2)

yourAnswerToTheQuestion