본문 바로가기
Spring과 진짜 초면인 우리들에게

객체지향 - 인터페이스

by eddy0223 2023. 3. 28.
Spring과 진짜 초면인 우리

 

 

인터페이스는 객체 지향의 특징들을 한번에 함축하고 있는 정말 멋진 개념입니다!

인터페이스는,

 

앞서 다룬 객체지향의 4가지 특징 중에서도

특히, '다형성과 추상화'를 구현하기위해 주로 사용된다고 생각합니다. ( + 다중 상속은 덤 ! )

 

'다형성'

인터페이스를 구현하는 '다양한' 클래스들이 같은 메서드를 다양한 방법으로 구현할 있다는 것을 의미,


'추상화'

인터페이스를 통해 클래스'들'이 가져야 메서드의 시그니처를 정의 있다는 것을 의미

 

++ 인터페이스는 '캡슐화'와 '상속' 또한 밀접한 관련이 있죠!

인터페이스를 사용함으로써 '캡슐화'된 추상적인 개념을 정의할 수 있고, '상속'을 통해 이를 구현한 클래스에서 재사용할 수 있다는 부분~

(코드의 재사용성을 높일 수 있겠군요)

 

따라서,

인터페이스는 다형성과 추상화를 통해 객체지향의 핵심원칙 중 하나인

 

"확장에는 열려있고 변경에는 닫혀있어야 한다"

 

구현할 있게 합니다.

 

 


인터페이스는 다른 객체들이 해당 개념을 사용할 수 있도록 필요한 메서드나 속성을 노출시키고,

그 외에 내부 구현 내용을 숨기는 역할을 합니다.

따라서, 인터페이스를 사용함으로써 '캡슐화'된 추상적인 개념을 정의할 수 있습니다.

 

또한, 인터페이스는 '상속성' 활용하여 '다형성'을 구현 있습니다.

인터페이스를 상속받는 클래스는 해당 인터페이스가 정의한 메서드를 반드시 구현해야 하므로,

같은 인터페이스를 구현한 여러 클래스들은 서로 다른 구현 방식을 가질 있습니다.

이를 통해, 다양한 구현 방식을 가진 객체를 동일한 타입으로 다룰 있는 '다형성'을 구현할 있습니다.