본문 바로가기
프로그래밍/Java

[Java] Interface basic

by 수붕이 2021. 1. 10.
728x90
반응형

 

 

🔔 개념


클래스와 달리 객체를 생성할 수 없으며,  클래스에서 구현해야 하는 일종의 작업 명세서이다.

 

 

🔔 사용하는 이유


인터페이스를 사용하는 이유는 많지만, 가장 큰 이유는 객체가 다양한 자료형(타입)을 가질 수 있기 때문이다.

 

자바 인터페이스는 추상 메서드의 모음이다. 

 

추상 메서드는 정의부가 없는 메서드를 말한다.

 

구현부가 없는 빈껍데기이므로 이를 구현해주는 클래스를 반드시 만들어야 하며,

 

이 클래스는 반드시 인터페이스에 명시되어있는 추상 메서드들을 모두 정의해야 합니다.

 

그렇지 않으면 오류가 발생합니다.

 

Add unimplemented methods를 클릭하면

 

인터페이스에서 선언된 추상 메서드를 오버라이드 해서 가져와

 

구현해준 클래스에서 정의와 선언을 할 수 있습니다.

 

클래스는 객체 생성을 할 때 데이터 타입에 의해 사용할 수 있는

 

메서드가 있는가 하면 사용하지 못하는 메서드도 있습니다.

 

위에 코드를 보면 데이터 타입이 InterfaceA의 레퍼런스인

 

ia는 InterfaceB가 가지고 있는 funB를 불러올 수 없습니다.

 


🔔 실습


장난감 인터페이스 만들기

Toy라는 인터페이스를 먼저 만들고 추상 메서드들을 정의해줍니다.

Toy

이 인터페이스를 구현해주는 클래스 ToyAirplane과 ToyCar를 만들고

 

implements키워드를 사용해 Toy를 상속해줍니다.

 

ToyAirplane

 

ToyCar

추상메소드들을 정의와 선언을 해주고 MainClass를 하나 만듭니다.

 

 

Toy라는 같은 데이터 타입에 ToyCar, ToyAirplaneb 객체를 만들어

 

car와 airplane라는 레퍼런스에 저장해줍니다.

 

객체는 다른 객체지만 데이터 타입에 같기 때문에 toys라는 배열에 담길 수 있습니다.

 

 

배열 안에 담긴 메서드들을 하나씩 호출해줍니다.

 

각각의 객체에서 구현된 기능들이 정확하게 구현된 것을 볼 수 있습니다.

 


🔔 마무리

 

이처럼 인터페이스는 객체의 타입이 확장 수 있습니다.

 

객체의 타입이 다형성으로 다양한 타입을 가질 수 있고

 

인터페이스에 선언만 해주고 구현은 인터페이스를 구현한 클래스에서 하기 때문에

 

그때그때 수시로 처음부터 객체를 만드는 게 아니라 인터페이스에서 제공해주는 추상 메서드의 따라서

 

객체를 객체의 성격에 맞게 따로따로 개성 있게 기능을 구현할 수 있습니다.

 

 

 

 

반응형

'프로그래밍 > Java' 카테고리의 다른 글

[Java] abstract class basic  (0) 2021.01.10

댓글