Reescrito en Java
De lo que estamos hablando aquí es en realidad polimorfismo en JAVA, es decir, la referencia principal xxx y el método xxx.print () en realidad llaman a métodos diferentes.
El método real llamado por print() depende del objeto que instancias, como tú.
Parent p = nuevo padre ("Sur", "Norte"); luego p.print() llama al método Parent.print().
Parent t = new child ("Este", "Oeste"); t. print(); llama al método print(); si tiene otra clase, B extiende Parent y anula el método print(), entonces su método Parent B = new B() se llama b.