티스토리 뷰

IT

[JAVA] 인터페이스

엿장구이 2018. 3. 18. 20:48

오랜만에 JAVA의 인터페이스를 복습해보려고 한다.

복습이므로 기억해두고자 하는 인터페이스의 특징들만 정리해 두려고 한다.



인터페이스(interface)


인터페이스는 자바 프로그래밍 언어에서 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상형이다.(위키백과의 정의)

풀어서 말하자면 한 사람이 혼자 코드를 작성하는 경우엔 불편함이 없겠지만 여러명이 함께 코드를 코드를 작성할 경우 특정 클래스는 약속한 틀이 있을 것이다.

그리고 그 약속한 틀을 인터페이스로 구현하는 것이다.



특징


- 인터페이스 내의 모든 메소드들이 정의상 추상적이기 때문에 abstract 키워드가 필요하지 않다.

-> 인터페이스 내에 존재하는 메소드는 무조건 public abstract로, 변수는 무조건 public static final로 선언됨.

-> 인터페이스의 맴버로 추상메소드와 상수만 허용된다.

-> 인터페이스 내에서 틀을 잡을 수 있어도 로직을 작성할 수는 없다.


- 클래스에 implements를 사용해 인터페이스를 구현한다.

-> 구현하려는 인터페이스의 모든 메소드를 구현해야 한다.

-> 인터페이스의 모든 메소드를 구현하지 않는다면 abstract를 표시해 추상 클래스로 변경해야 한다.


- 하나의 클래스가 하나 이상의 인터페이스를 구현 할 수 있다.

-> 클래스는 단일 상속만 가능하지만 인터페이스는 여러개 구현 가능하다.

-> 위 특징에서 말했듯이 인터페이스를 여러개 구현할 경우 구현하는 모든 인터페이스의 메소드를 구현해야 한다.


- 인터페이스도 상속이 가능하다. (서브인터페이스)

-> 일반 상속 방법과 같이 인터페이스에 extends를 사용해서 확장이 가능하다.

-> 또한 인터페이스끼리는 다중 상속이 가능하다.







참고

위키백과 

https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4_(%EC%9E%90%EB%B0%94)#%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4_%EC%A0%95%EC%9D%98

오픈튜토리얼스

https://opentutorials.org/module/516/6063

댓글
최근에 올라온 글
TAG
more