본문으로 바로가기

Java에서 interface란?

category 프로그래밍/자바 2018. 12. 21. 14:03

자바에서 interface를 왜 쓰냐고 물었을때

자바는 다중상속이 안되서요라는 말이 가장 많이 나오는데 그건 100% 틀린 말이다.

인터페이스는 ~ 할수있는,~할수있다고 알려주는 자격증의 역할은 하는 녀석이다. 

인터페이스는 계층적특성이 아닌 기능적 특성을 위함.


할수있는 특성을 가지고 인터페이스를 만들면 같은 기능을 할수있는 객체라면 같은 메소드를 사용하기 때문에 엄청 효율적이다.




갈수있음(run) ,멈출수있음(stop) 이라고 한다면

소나타 , 말 둘다 갈수있고 멈출수 있는 녀석들이다.

그렇기 때문에 인터페이스로 구현을 하고 AI는 갈수있는 녀석들아 run 해라고 하면 소나타이든 말이든 상관없이 run할수 있고

stop하라고 하면 stop할수 있다.

이런것이 바로 다형성(dynamic polymorphism)이다. 같은 기능을 가진 여러 객체들이 상관없이 같은 기능을 하는것들을 다형성이라고 부른다.

흔히 다형성이라고 하면 오버로딩,오버라이딩을 말하는데 그것은 static polymorphism이고

일반적으로 다형성이라고 하면 dynamic polymorphism을 말한다.