Might the rocket example have alluded to the fact that in many object oriented languages, an object's type is immutable? That is, if I have a Student
object, and the person it represents finishes her studies and becomes an employee, I can not turn the Student
object into an Employee
object. I have to create a new one, lose object identity in the process, and consequently have to update all references pointing to the former student.
Of course, such a feature would interfere with static typing (the type invariant that an object's type is a subtype of the static type of any reference pointing to it). But in some contexts the flexibility might be worth that.