JAVA :: 인터페이스

smi·2021년 1월 24일
2

JAVA (자바)

목록 보기
5/62
post-thumbnail

📝 인터페이스

💬 개발 코드와 객체 사이에서, 객체에 따라 다른 메소드를 호출할 수 있도록 하는 중간 역할을 한다.


💡 인터페이스 선언

💬 interface 키워드를 사용하여 선언한다.

interface 변수 {⋯}


💡 인터페이스 특징

💬 오직 추상 메소드와 상수 필드로만 구성된다.

⚠ 추상 메소드의 abstract public, 상수 선언 시의 public static final 키워드를 생략할 수 있다.
👉예시
(public) interface Light {
    (public static final) int MAX_BRIGHTNESS = 20; //상수 필드 선언 
    (abstract public) void On(); //추상 메소드 선언
    (abstract public) void Off(); //추상 메소드 선언
}

💬 추상 메소드만 가지기 때문에 객체를 생성할 수 없다.

💬 인터페이스를 상속받아 새로운 인터페이스를 만들 수 있다.

⚠ 콤마로 연결하여 다중의 인터페이스를 상속을 받을 수 있다.

interface 상속받는인터페이스변수 extends 인터페이스변수1, 인터페이스변수2 {⋯}


💡 인터페이스를 구현한 구현 클래스

💬 인터페이스를 상속받고, 인터페이스에 있던 추상 메소드를 재정의하여 작성한 실행 내용을 가지고 있는 클래스이다.

⚠ 구현 클래스에 추가적으로 다른 메소드도 작성할 수 있다.

💬 implements 키워드를 사용하여 인터페이스를 구현한다.

⚠ 구현 클래스에는 반드시 인터페이스의 모든 메소드를 구현하여야 한다.

(public) class 구현클래스변수 implements 인터페이스변수 {⋯}

💬 콤마로 연결하여 다중의 인터페이스로 구현 클래스를 구성할 수 있다.

(public) class 구현클래스변수 implements 인터페이스변수A, 인터페이스변수B {⋯}

👉예시
public class Computer implements TV, Light {
     ⋯
}

💬 인터페이스는 필드, 매개 변수, 로컬 변수의 타입으로 선언이 가능하다.

👉예시
public class Example {
    //Field
    Computer computer_interface = new Light(); //필드로 선언

    //Constructor
    Example(Computer computer_interface) { //생성자의 매개값으로 구현 객체 대입
        this.computer_interface = computer_interface;
    }

    //Method
    void methodA() {
        //local variable
        Computer computer_interface = new TV(); //로컬 변수의 타입으로 선언
    }
    void methodB(Computer computer_interface) {⋯}; //생성자의 매개값으로 구현 객체 대입
}

※ Computer computer_interface에는 main에서 실행할 때 인터페이스였던, 
new TV()나 new Light()를 대입할 수 있다.

💡 구현 클래스 사용 방법

💬 implements 키워드를 사용하여 인터페이스를 구현한다.

인터페이스변수 변수 = new 구현객체(매개변수, ⋯)

Reference

명품 자바 에센셜(2014, 황기태)

profile
공부한 거 올려요 :)

0개의 댓글