Hola Matru:
El ejercicio está bien estructurado, lo cual hace que sea más facil de seguir. Te felicito por ello, es una muy buena práctica la prolijidad, al igual que el agregado de comentarios. Agradecerás haberlo hecho de esa forma al realizar mantenimientos futuros sobre tus propios códigos.
Respecto del ejercicio te haré una observación que creo puede ser producto de no haber interpretado bien la consigna del ejercicio.
Tanto las clases dimeMotor() como la clase dimeSiMotorEsParaAgua(), deben evaular el campo tipoMotor. En tu método dimeSiMotorEsParaAgua realizas la evaluación sobre un campo de instancia llamada motor lo cuál no es correcto.
Deberías reemplazar:
public boolean dimeSiMotorEsParaAgua(){
boolean motorEsParaAgua = false;
if (motor == 1) {motorEsParaAgua= true;}
return motorEsParaAgua;}
por :
public boolean dimeSiMotorEsParaAgua(){
boolean motorEsParaAgua = false;
if (tipoBomba == 1) {motorEsParaAgua= true;}
return motorEsParaAgua;}
El campo de instancia motor no debería existir ya que no tiene utilidad.
Analízalo y cualquier duda estamos acá para ayudarte. Saludos!