개발이좋아

[Java] 인터페이스 Interface 본문

Java

[Java] 인터페이스 Interface

noobdev 2019. 12. 2. 20:48

인터페이스는 쉽게 생각해서 작업명세서라고 생각하면 된다.

해야할 일이 적혀 있어서 그 명세서를 가지고 실제로 일을 한다고 생각하면 이해하기 쉽다.

인터페이스는 추상 메서드와 상수로만 이루어져있으며 구현되어 있는 코드가 없기 때문에 객체를 생성할 수도 없다.

인터페이스는 클래스 파일에서 implements키워드를 통해 인터페이스를 사용할 수 있다.

 


자바 인터페이스는 프로젝트에서 New -> Interface를 클릭하여 인터페이스 파일을 생성할 수 있다.

인터페이스에서 선언한 변수는 컴파일시 상수로 변환이 되고 메서드는 abstract 예약어가 없지만 컴파일 할 때 추상메서드로 변환된다.

 

클래스에서 implement 예약어를 사용해 인터페이스를 구현할 수 있다.

위 사진에서는 오류가 나고 있는데 그 이유는 Calc의 메서드를 구현하고 있지 않기 때문이다.

클래스에서 인터페이스를 구현하면 인터페이스의 정의한 메서드를 전부 구현해야 한다.

인터페이스 구현은 라인 옆에 있는 오류 표시를 클릭해서 Add unimplemented methods를 클릭하면 쉽게 구현 할 수 있다.

클래스 이름에 오타가 있다. ClacImpl가 아닌 CalcImpl가 정확한 클래스명

CalcImpl 클래스에서 Calc 인터페이스를 구현한 모습이다. 

또한 클래스에서 여러 인터페이스를 구현하는 것도 가능하다.

 

 

위와 같이 인터페이스를 구현한 클래스를 객체화해서 메서드의 접근할 수 있다.

 

인터페이스는 구현부가 없는 껍데기이다. 

만약 클래스에서 여러개의 인터페이스를 구현하고 있고 그 인터페이스중 하나를 수정해야 한다면 다른 코드는 손 볼 필요 없이 해당 인터페이스만을 수정할 수 있다.

또한 다른 인터페이스의 기능이 필요가 없어지면 implements 예약어에서 해당 인터페이스를 지우기만 하면 된다.

인터페이스를 사용하면 유지보수가 쉬워지며 다형성을 구현하기도 간단하다.

 

 

"본 포스팅은 필자가 공부한 것을 정리해놓은 것으로 오류가 존재할 수 있습니다."

'Java' 카테고리의 다른 글

[Java]생성자 Constructor  (0) 2019.12.04
[Java] 상속(inheritance)  (0) 2019.12.03
[Java] this 키워드  (0) 2019.12.01
[Java] 람다식  (0) 2019.11.29
[Java] 제어문1 - 조건문  (0) 2019.11.27
Comments