티스토리 뷰

Tip and Error/JAVA

인터페이스 (interface)

geonwoopaeng@gmail.com 2021. 4. 14. 18:17

인터페이스 (interface)


https://whatisthenext.tistory.com/36

https://gitlab.com/easyspubjava/javacoursework/-/tree/master/Chapter3/3-11


  • 구현 코드가 없다, 여러개 구현 가능

  • 모든 메서드가 추상 메서드로 선언된다. (public abstract)

  • 모든 변수는 상수로 선언된다. (public static final)

  • 점선 화살표로 표시

  • 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 가능

    (인터페이스에 선언된 메서드만 사용 가능)

    • ex) interface메서드 C = new 클래스();

interface를 사용하는 이유


  • 클래스나 프로그림이 제공하는 기능을 명시적으로 선언
  • client와 프로그램 사이를 연결해 주는 것

// Calc.java // interface
public interface Calc {
    double PI = 3.141592;

    int add(int n1, int n2);
    int sub(int n1, int n2);
    int mul(int n1, int n2);
}

// Calculator.java // 상위 클래스
public abstract class Calculator implements Calc {
    // interface에 있는 메서드를 모두다 구현하지 않았기 때문에 abstract입니다.
    @Override
    public int add(int n1, int n2) {
        return n1 + n2;
    }

    @Override
    public int sub(int n1, int n2) {
        retur n1 - n2;
    }
}

// CasioCalc.java // 하위 클래스
public class CasioCalc extends Calculator {

    @Override
    public int mul(int n1, int n2) {
        return n1 * n2;
    }

    public void showInfo() {
        System.out.prinln("출력 완료");
    }
}

//Test.java
public class Test {
    public static void main(String[] args) {
        Calc calc = new CasioCalc();
        int n1 = 10;
        int n2 = 10;

        System.out.println(calc.add(n1, n2));
        //...
    }
}

반응형

'Tip and Error > JAVA' 카테고리의 다른 글

default & static & private  (0) 2021.04.16
인터페이스 활용 (interface)  (0) 2021.04.14
추상 클래스(abstract class) & 템플릿 메서드(final)  (0) 2021.04.13
instance 형 확인 (instanceof)  (0) 2021.04.12
Override  (0) 2021.04.08
공지사항
최근에 올라온 글