🎨 Programming/JAVA

[JAVA] 18. 인터페이스(interface)

ryang x2 2020. 6. 29. 01:16
728x90
반응형

#인터페이스(interface)

interface는 클래스를 만들기 전에 앞으로 이런 기능들을 만들겠다 라고 협의해놓은 명세서와 같습니다. 

인터페이스는 그 자체가 객체를 의미하지 않으며, 어떤 객체가 할 수 있는 기능 자체를 의미하고 그 기능을 하나의 스펙으로 모은 것에 불과합니다. 따라서, 인터페이스가 실제 기능을 가지는 것은 아닙니다.

인터페이스에서는 일반 필드를 갖지 못합니다. 일반 필드로 작성하면 JVM이 static final 키워드를 추가합니다.

 

예를 들면) 타회사에서 class를 만들고 그 class 를 사용하기 위해서 내가 맞는 기능을 추가해주면 된다

 

 

● 특징

- 인터페이스의 상수는 private으로 만들 수 없습니다. 

- 인터페이스에는 추상 메서드만 존재합니다. 예외인 경우도 있음

- 인터페이스는 객체의 타입으로만 사용됩니다. 

 

 

*인터페이스 적용* 

- implements 키워드를 이용하여 구현합니다. 

- 다중 적용이 가능합니다. 

- 추상 메서드의 구현이 반드시 필요합니다. 

( 단, 추상 메서드를 구현하지 않으면 해당 클래스는 추상 클래스로 사용됩니다. ) 

 

 

 

예시 1) 

Drawable 인터페이스
Drawable 인터페이스 구현한 Circle class
interface Movable
class DigitalPic
Portrait class

* interface 상속과 다르게 다중구현이 가능하다.

class Shape
Main class

 

결과값

 

728x90
반응형