Per ciascuna classe ridefinirai il toString() componendo una stringa con i dati che ti sono stati chiesti. E li hai tutti, parametri o calcolati che siano.
codice:

public String toString(){
        return "[Rettangolo] " + "AB=CD= " + AB + " BC=AC= " + BC + " [Perimetro " + getPerimetro() + "cm ] " + "[Area " + getArea() + "cm^2 ]";
    }
è concettualmente corretto fare un toString così?? oppure dovrei usare getAB per AB e getBC per BC?? Ci sono più modi cencettualmente corretti per fare un toString?
Avevo poi pensato di inserire il toString nella classe astratta poligono, ma correggimi se sbaglio, non ha senso perche il toString è gia un metodo di object.