자바 배열 덧셈 질문

public class ArrListPoly {
private int k;
private int[] arr;

public Object peek(int k) {
	return arr[k];
}

public int getHighestDegree() {
	return k;
}

public void setPoly(int k, int[] arr) {
	this.k = k;
	this.arr = arr;
}

public ArrListPoly sumPoly(ArrListPoly p1, ArrListPoly p2) {
	ArrListPoly p3 = new ArrListPoly();
	p3.arr = new int[p1.arr.length];
	for (int i = p1.arr.length - 3; i >= 0; i--)
		p3.arr[i] = p1.arr[i] + p2.arr[i];
	return p3;
}
}

public class ArrListPolyTest {

public static void main(String[] args) {
	ArrListPoly p1 = new ArrListPoly();
	int[] poly1 = { 9, 0, -3, 0, 5 };
	int p1highestDegree = poly1.length - 1;
	p1.setPoly(p1highestDegree, poly1);
	printPolyEq(p1, 1);

	ArrListPoly p2 = new ArrListPoly();
	int[] poly2 = { 2, 0, 4 };
	int p2highestDegree = poly2.length - 1;
	p2.setPoly(p2highestDegree, poly2);
	printPolyEq(p2, 3);

	ArrListPoly p3 = p1.sumPoly(p2);
	printPolyEq(p3, 1);
}

public static void printPolyEq(ArrListPoly p, int nTabs) {
	for (int i = 0; i < nTabs; i++)
		System.out.printf("\t");
	for (int i = p.getHighestDegree(); i >= 0; i--)
		System.out.printf("%+d x%d\t", p.peek(i), i);
	System.out.println();
}

}

두개의 배열을 생성해서 다항식을 만들고 이 두식을 더한 결과값을 얻고 싶은데요,
두 다항식을 출력하는 것까진 완성했는데 결과값이 한자리수밖에 나오지 않습니다.
+5 x4 +0 x3 -3 x2 +0 x1 +9 x0
+4 x2 +0 x1 +2 x0
+11 x0

이런 식으로요.
4차까지 출력되게 하고 싶은데 sumPoly를 어떻게 수정해야할지 조언 부탁드립니다.

https://www.codentalks.com/search?context=topic&context_id=10554&q=%EB%8B%A4%ED%95%AD%EC%8B%9D&skip_context=true