15.인터페이스
인터페이스랑?
구현 코드가 없는 인터페이스
인터페이스(interface)는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 합니다.
인터페이스는 추상 메소드와 상수로만 이루어져 있습니다. 구현된 코드가 없기 때문에 당연히 인터페이스로 인스턴스를 생성할 수도 없습니다.
인터페이스에 선언한 메소드는 모두 구현 코드가 없는 추상 메소드입니다. 이들 메소드는 public abstract 예약어를 명시적으로 쓰지 않아도 컴파일 과정에서 자동으로 추상 메소드로 변환됩니다. 그리고 인터페이스에 선언한 변수는 모두 컴파일 과정에서 값이 변하지 않는 상수로 자동 변환됩니다. public static final 예약어를 쓰지 않아도 무조건 상수로 인식합니다.
추상 메소드 times()와 divide()를 구현하지 않았으므로 Calculator는 추상 클래스입니다.
Calculator 추상 클래스를 상속받아 CompleteCalc 클래스를 만듭니다. 아직 구현하지 않은 times()와 divde() 추상 메소드를 이 클래스에서 구현합니다.
10 과 5를 덧셈, 뺄셈, 곱셈, 나눗셈, 연산하고 결과 값을 출력합니다. 8행을 보면 구체적인 클래스인 CompleteCal 클래스만 인스턴스를 생성할 수 있습니다. Claculator 클래스는 추상 클래스이므로 인스턴스를 생성할 수 없고, Calc 인터페이스는 추상 메소드만으로 선언되엇기 때문에 인스턴스를 생성할 수 없습니다.