Non c'è alcun problema, se non quello che devi prendere il tuo Poly(int, int) e buttarlo via: dimenticati della sua esistenza e lavora su Poly(Rational r, int n):
immagino che tra i vari metodi della classe Rational ci saranno anche quelli per fare vari controlli... tipo se un Razionale è 0, oppure se è maggiore e/o minore di un altro etc etc, quindi usa i metodi di Rational...