¿Cómo puede una única variable de referencia acceder a todos los campos de objeto?

Animal myAnimal = new Animal();

Tengo este código arriba. Hasta donde yo sé, hará estas cosas:

Se creará un objeto animal en la memoria del montónLa referencia a ese objeto se pasará a la variable de referencia "myAnimal". En otras palabras, la variable "myAnimal" contiene la dirección de memoria del objeto "Animal" en el montón.

Lo que no entiendo es que

¿Cómo se ve el valor de la dirección de memoria?¿Es esa una dirección o un valor de dirección numerosa? Si solo hay uno, ¿cómo puede myAnimal tener acceso a todos los campos de objetos del objeto Animal como myAnimal.name, myAnimal.height, ...?

¿Alguien puede explicar esto por favor? Gracias por adelantado.

Respuestas a la pregunta(4)

Su respuesta a la pregunta