Sample 1.

package interfaceex;

public interface Calc {
	double PI = 3.14;
	int ERROR = -99999999;
	
	int add(int num1, int num2);
	int substract(int num1, int num2);
	int times(int num1, int num2);
	int divide(int num1, int num2);
	int square(int num);
}
package interfaceex;

public abstract class Calculator implements Calc {
	@Override
	public int add(int num1, int num2) {
		// TODO Auto-generated method stub
		return num1 + num2;
	}

	@Override
	public int substract(int num1, int num2) {
		// TODO Auto-generated method stub
		return num1 - num2;
	}

}
package interfaceex;

public class CompleteCalc extends Calculator {

	@Override
	public int times(int num1, int num2) {
		return num1 * num2;
	}

	@Override
	public int divide(int num1, int num2) {
		if(num2 != 0)
			return num1 / num2;
		else
			return Calc.ERROR; // num2 가 0일 경우에 대한 오류 반환
		
	}
	
	// 해당 클래스에서 추가 구현한 메소드
	public void showInfo() {
		System.out.println("Calc 인터페이스를 구현하였음.");
	}

	@Override
	public int square(int num) {
		return num * num;
	}

}