Any object in the language has a prototype field. prototype is a reference to some type object (a.k.a. class).
prototype field establishes instance-of relationship between object and its type.
This schema of instance-of relationship is simpler and thus different from the one used in JavaScript.
prototype field (a.k.a. attribute) is, as a rule, read-write property so can be changed at runtime. Changing value of prototype from one class to another is known as dynamic subclassing.