인터페이스(Interface)
02 Sep 2021 -
1 minute read
-
인터페이스를 구현한 다양한 객체 사용 > 다형성
-
인터페이스는 클래스나 프로그램이 제공하는 기능을 명시적으로 선언
-
클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있음 ( 모듈이 무슨일을 해야하는지 명세 > 쓰는쪽에서 인터페이스만 보면 어떻게 만들어졌는지 굳이 안봐도 구현 가능! (jdbc jar - connection interface ..) )
-
어떤 객체가 하나의 인터페이스 타입이다 = 그 인터페이스가 제공하는 모든 메서드를 구현했다
-
모든 메서드 추상 메서드로 선언 (public abstract)
-
모든 변수는 상수로 선언 (public static final)
-
ex)
-
Calc.java (인터페이스)
public interface Calc { //인터페이스 > 구현코드 X double PI = 3.14; int ERROR = -999999; int add(int num1, int num2); int sub(int num1, int num2); int mul(int num1, int num2); int div(int num1, int num2); }
-
Calculator.java (Calc 구현)
public abstract class Calculator implements Calc { @Override public int add(int num1, int num2) { return num1 + num2; } @Override public int sub(int num1, int num2) { return num1 - num2; } @Override public int mul(int num1, int num2) { return num1 * num2; } }
-
Div.java (Calculator 상속)
public class Div extends Calculator { //타입상속 (구현상속 X) @Override public int div(int num1, int num2) { if (num2 == 0) { System.out.println(ERROR); } return num1 / num2; } }
-
CalcMain.java
public class CalcMain { public static void main(String[] args) { Calc calc = new Div(); //인터페이스를 구현한 클래스(Div) -> //인터페이스 형으로 선언한 변수로 형 변환(Calc calc) System.out.println(calc.add(10, 5)); System.out.println(calc.div(15, 6)); } }
-
출력결과
15 2
-