Haekt‘s log

[JAVA] interface란? 본문

언어/JAVA

[JAVA] interface란?

Haekt 2022. 10. 3. 22:35

 

예시를 들어 설명하겠습니다.

 

한 A 기업이 P프로그램을 출시했습니다. 그런데 타 B기업이 P프로그램의 기능을 빌려

업그레이드 된 새로운 P프로그램을 만들어 판매하려고 합니다

 

그래서 A기업이 기능을 이용해도 되니 무조건  ~~ 기능은 유지하고, 우리 A기업의 출처를 남겨라 라는 조건을 걸었습니다. 

 

이 때 무조건 ~~해라 라고 강제하는 것이 바로 interface입니다. 

 

- interface


interface 는 동일한 목적하에 동일한 기능을 수행하게끔 강제하는 것으로, 

자바의 다형성을 극대화 하여 코드 수정을 줄이고, 프로그램 유지보수성을 높이기 위해 사용한다.

 

 

인터페이스를 선언하는 방법은 클래스 선언과 비슷하게 interface [이름] 을 입력한다.

다음과 같다.

interface AA{

	// ex) public void a1();
    	// ex) void b1();
    
}

 

 

 

반대로 인터페이스를 쓰는 클래스는 상속(extends)과 비슷하게 implements [이름] 를 작성한다

다음과 같다.

public class Test implements AA{ // implements 를 붙여 인터페이스 사용

	// ex) public void a1() {} // interface AA 에서 강제한 함수 
	// ex) public void b1() {} // interface AA 에서 강제한 함수 접근제어시 반드시 public

}

AA interface안에 선언한 함수는 무조건 강제로 써야 하므로,

안쓰는 함수라 해도 항상 인터페이스를 사용한 클래스는 안에 함수를 정의해 줘야한다.

 

* 영단어로 implements 는 도구라는 뜻이다.

 

 

 

 

'언어 > JAVA' 카테고리의 다른 글

[JAVA] Collection Framework  (1) 2022.10.04
[JAVA] 추상 메소드 abstract란?  (0) 2022.10.03
[JAVA] 접근 제어  (2) 2022.10.03
[JAVA] 변수 상수 처리하기  (1) 2022.10.03
[JAVA] 스캐너 클래스를 이용한 인수 입력 & args 입력  (1) 2022.10.03
Comments