티스토리 뷰

인터페이스가 어떻게 class가 할 수 없는 일을 할 수 있는가를 알아보겠다.

 

 

 

 

사진에서 인터페이스의 다향성도 마찬가지로 , 인터페이스( In 1)에서 정의된 메서드를

어떠한 클래스 ( A )가 인터페이스 ( In 1)을 implements 한 상황이라면 , 

다향성으로 A obj = new in1 ;

이런 식으로의 선언이 가능하다. 일반 다향성과 마찬가지로 interface안에 있는 메서드들만 사용이 가능하다

 

 

                                                      ※ 하지만!

   

A라는 class가  인터페이스의 구현을 여러 개 즉  A 클래스가 implements 가 2개 이상일 경우에는  

마찬가지로  각각의 인터페이스에 존재하는 메서드들만 사용이 가능하다.

 -> 데이터 타입이 어떤 것인지에 따라 메서드들을 가져올 수 있는 것이 다르다.

 

 

 

                                    interface다형성 사용 이유

 

스마트폰을 할머니에게 전화기라고 말씀드리면 할머니는 전화기라고만 생각해서 다른 기능은 쓰지 않을 수 있다.
또, 스마트폰을 꼬마한테 게임이야 라고 말하면 꼬마는 게임기라고 생각되어 다른 기능을 쓰지 않을 수 있다.
또한 꼬마에게 줄 때, 통화 기능 등의 다른 기능들을 못쓰도록 방지하고자 잠글 수 있는데 

interface는 이러한 기능 및 역할들을 모~~~~두 할 수 있기 때문에  interface다형성을 사용하는 이유이다.

 

 

 

더 쉽게 예를 들자면 ,

interface = 아빠 , 엄마 , 프로그래머, 신도 라는 인터페이스를 구현하고있다 (메소드가 아님 이것은 직업을 뜻하기 때문에 )

그 interface안에서 programmer라는 직종안에 coding()이라는 공통의 메소드를 가지고 있다 .

 

Steve라는 클래스는 즉 , Steve라는 사람은 아빠이자 , 프로그래머이자, 동시에 신도라는 역할을 하고 있다.

그 중 메소드 재정의를 통하여 프로그래머안의 코딩 능률은 fast 라고 정의하고 있으며

 

Rachel이라는 클래스는 엄마,프로그래머라는 것을 구현하고 있으며 동시에 그안에서 coding()이라는 메소드를 재정의 하고 있다.

 

결과적으로 main class에서는 이들이 뭐 하는지 중요하지 않으며 오롯이 프로그래머라는 직업안에서 그들은 고용당하는 입장 즉 직원 1 , 직원 2 인것이다 따라서 회사의 입장에서는 그들의 코딩 능률만 필요로 하며 다른것은 원하지 않는다.

 

이렇게 여러개의 interface를 구현했지만 Workspace의 입장에서는

그 중 원하는 것만 뽑아 쓸 수 있다는 것이   장점이 된다.

 

즉, interface 다형성의 장점은 원하는 기능에 집중할 수 있다.

 

 

 

'Java' 카테고리의 다른 글

JAVA - Object  (0) 2019.09.28
JAVA - Exception(예외)과 finally 란 ?  (0) 2019.09.15
클래스의 접근 제어자  (0) 2019.09.15
자바 final  (0) 2019.09.15
오버라이딩과(Override) VS 추상화(abstract)의 차이점  (0) 2019.09.12