Herencia
Una clase puede heredar de otra utilizando la palabra reservada extends. Heredará todas las propiedades y métodos de la clase padre. Por supuesto, podremos sobrescribirlos en la clase hija, pero seguimos pudiendo llamar a los métodos de la clase padre utilizando la palabra reservada super. De hecho, si creamos un constructor en la clase hija, debemos llamar al constructor padre utilizando super.
Valor primitivo y string
Cuando un objeto es convertido a string, el método toString (heredado de Object) es automáticamente llamado. Por defecto, imprimirá el texto "[object Object]", pero podemos sobreescribir este método.
Cuando comparamos objetos usando los operadores relacionales (>, <, >=, <=), obtenemos el el valor primitivo por defecto (por defecto toString()). Si sobrescribimos el método valueOf() (heredado de Object), devuelve otro valor primitivo, que será usado para este tipo de comparaciones.