POO-ITBA / 2023_02

0 stars 0 forks source link

EJ6 TP4 #4

Open aggalan opened 1 year ago

aggalan commented 1 year ago

Hola. Tenia una consulta de a que definicion del metodo .evaluate() llama !expression.evaluate(), ya que en la clase abstracta padre "Expression" no esta implementado este metodo y no entiendo como la evalua. image

fmeola commented 1 year ago

Hola. Eso dependerá de qué instancia de Expression guardaste en la variable de instancia, que es la que recibiste por parámetro en el constructor. Por ejemplo si lo invocaste así:

new NotExpression(new SimpleExpression(true))

entonces en la variable de instancia de NotExpression se almacena una instancia de SimpleExpression. Por lo tanto cuando se hace !expression.evaluate() se ejecuta el código de evaluate de la clase SimpleExpression y luego se niega.

aggalan commented 1 year ago

Ah perfecto, ahi se entiende gracias!