[JAVA개념공부]인터페이스(Interface), 다형성, 인터페이스 통합

2021. 5. 26. 17:47컴퓨터과학

728x90
반응형

Interface

- 규약, 약속으로써의 기반 코드가 될 수 있다. 인터페이스를 통해 통일성있는 결과물을 기대할 수 있다.

- Final 변수, abstract 메소드, 그리고 예외적으로 default 메소드로 구성된다. //private등의 인스턴스 메소드는 사용할 수 없다.

- public, abstract는 기본값으로 생략이 가능하다.

- Interface에 포함되는 abstract method는 상속받는 클래스에서 무조건 Override 되어야 한다. //static영역과 같이 이해할 수 있다.

- Interface에 포함되는 default method는 Override되지 않아도 된다.

- 구현 클래스(상속받는 클래스)는 implements 명령어로 Interface를 상속받는다.

- 자바의 interface 이름은 보통 '~~able'로 쓰인다.

ex) String 객체의 Interface인 Compareable, Serializable 등..

 

Interface의 이해

- 인터페이스란? : 개발 코드와 객체가 서로 통신하는 접점.

- 다형성의 확보 : 개발 코드 변경 없이 리턴값 또는 실행 내용이 다양해 질 수 있다. (다형성)

 

다형성이란?

- 하나의 객체 메소드를 사용해도 다른 여러 동작을 수행할 수 있는 성질. - Override의 특성

- 하나의 인터페이스를 통해 여러 객체를 동작할 수 있는 성질. - Interface의 특성

 

ㆍ개념 이해를 위한 기초적인 예시(저같은 초보자를 위한 내용)

 

 

인터페이스는 메뉴판이다.

 

 

인터페이스는 개발코드와 (호스트가 관리하는)객체를 연결시켜줌.

메뉴판은 손님과 (식당주인이 관리하는)음식을 연결시켜줌.

 

개발코드는 인터페이스만 보고 코딩을 진행한다.

손님은 메뉴판만 보고 주문한다.

 

음식 요리하는 과정은 음식마다 다르겠지만

손님이 ‘주문하기’로 두 음식을 다 호출할 수 있게 하는 역할이 바로 ‘메뉴판’

 

cf) 인터페이스는 클라이언트와 서버간의 소통 매개체.

 

 

Interface 통합

class T1 extends Object implements A, B {..

// implements가 많을 경우

// t1의 부모는 A, B다. : 부모가 둘이다.

A a = new T1(); // B를 못씀

B b = new T1(); // A를 못씀



interface C extends A, B{}

class T1 extends Object implements C {..

C c = new T1();

c.go();

c.stop();

//통합된 인터페이스를 implements한 클래스라서 A, B메소드 다 사용 가능
728x90
반응형