- 인터페이스(interface)와 다형성 왜 사용하는가 ? 목차
인터페이스가 어떻게 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 |