자바에서 인터페이스는 Class가 아닌 Interface를 만들어 사용하게 되는데
우클릭 후 New -> Interface를 눌러 만들어주면 된다
위 스크린샷은 interface로 만든 InterExample인데
보면 인터페이스 안에서는 특정 메소드를 이름 혹은 이름과 파라미터만 정의하고
안에 내용은 없는것이 보이는데
이는 인터페이스의 특성상 메소드 안의 내용을 구현하지 못해서 그렇다
인터페이스에서는 외형만 만들고 인터페이스를 사용하는 클래스에서 안의 내용을 구현하는 것이다
다음은 인터페이스 InterExample을 사용하는 ImpleInterface 파일인데
implements 인터페이스명을 통해 인터페이스를 사용할 수 있다
보면 인터페이스를 implements 시
인터페이스 안에 정의된 메소드를 구현하지 않으면 에러가 뜨는 것이 보인다
이렇게 인터페이스를 implements 받으면 인터페이스에 정의한 메소드를 반드시 구현해줘야 한다
이제 java에서 인터페이스의 사용법과 용도가 감이 올 텐데
먼저 사용법은 인터페이스 안에 메소드를 정의하고 이후 사용할 클래스에서
implements 인터페이스명
으로 사용한다
다음으로 인터페이스의 사용 이유는
인터페이스 안에 구현한 메소드들은
사용하는 클래스들에서 인터페이스를 implements 시
반드시 구현해야 하기 때문에
특정 인터페이스 implements 시 각각 다른 클래스에서도
동일한 이름의 메소드를 구현해게 만들 수 있다
implements 외에 extends 역시 자주 보게 되는데
extends는 다중상속이 안되고 implements는 다중상속이 된다는 것 외의
차이점은 아래 글을 참고해주면 된다
마지막으로 인터페이스 예제 설명 시 사용한 코드는 아래와 같다
public interface InterExample {
public void makeThis(); // Interface에 정의 후 implements 하면 구현 강제
public void makeThisWithParam(String name, int age);
}
public class ImpleInterface implements InterExample { // InterExample implements
@Override
public void makeThis() { // 구현하지 않을 시 에러 발생
System.out.println("makeThis Call");
}
@Override
public void makeThisWithParam(String nameValue, int ageValue) { // 받은 파라미터명은 변경해 사용 가능
System.out.println("makeThisWithParam Call with " + nameValue + " " + ageValue);
}
public static void main(String[] args) {
ImpleInterface inter = new ImpleInterface();
inter.makeThis();
inter.makeThisWithParam("Name", 20);
}
}
'Language > Java' 카테고리의 다른 글
자바 예외처리 종류 및 예제 (0) | 2019.11.11 |
---|---|
자바 추상클래스 예제 및 사용이유 정리 (0) | 2019.10.30 |
자바 extends Thread, implements Runnable 차이 (0) | 2019.10.23 |
자바 쓰레드 예제 및 사용 이유 알아보기 (5) | 2019.10.23 |
자바 초기화는 무슨 뜻이고 왜 해야할까? (2) | 2019.10.17 |
댓글