오답노트

[Java] 인터페이스 본문

Java

[Java] 인터페이스

권멋져 2023. 7. 8. 17:03

인터페이스

인터페이스란 서로 다른 것을 소통할 수 있게 해주는 일종의 도구다. 우리는 컴퓨터와 소통하기 위해 키보드를 사용하고, TV와 소통하기 위해 리모컨을 사용한다. 이처럼 Java는 소통할 수 있는 도구를 만들 수 있는 인터페이스라는 것이 있다.

 

인터페이스는 함수를 가상화하여 가지고 있고, 구체적인 수행 내용은 클래스가 받아 정의를하게 된다.

그리고 Java는 다중상속이 불가능하지만 인터페이스를 통해 이 한계를 극복했다.

인터페이스는 다른 클래스를 작성할 때 기본이 되는 틀을 제공한다.

 

인터페이스 사용

인터페이스 생성

public interface Calc {
	double PI = 3.14;
	int ERROR = -99999999;
	
	int add(int num1, int num2);
	int substract(int num1, int num2);
	int times(int num1, int num2);
	int divide(int num1, int num2);
	
	default void decription() {
		System.out.println("정수의 사칙연산을 제공합니다");
	}
	
	static int total(int[] arr) {
		int total = 0;
		for(int num : arr) {
			total += num;
		}
		
		return total;
	}
}

위 코드는 간단한 계산기를 만들기 위한 인터페이스이다. 

class를 생성하듯이 만들면 된다.

 

내부 함수를 살펴보면 일반적으로 우리가 알고 있는 함수의 형태도 보이지만, 선언만된 채 정의되어 있지 않은 함수도 보인다.

 

이제 정의되지 않은 함수들을 정의해보자

 

public class Calculator implements Calc {

	@Override
	public int add(int num1, int num2) {
		return num1 + num2;
	}

	@Override
	public int substract(int num1, int num2) {
		return num1 - num2;
	}
    
    @Override
	public int times(int num1, int num2) {
		return num1*num2;
	}

	@Override
	public int divide(int num1, int num2) {
		if(num2 == 0)
			return ERROR;
		
		return num1/num2;
		
	}



}

 

implements 키워드를 이용해 인터페이스에서 정의되지 않은 부분들을 Override했다.

'Java' 카테고리의 다른 글

[Java] 스트림  (0) 2023.07.10
[Java] 람다식  (0) 2023.07.10
[Java] 지역 내부 클래스와 익명 내부 클래스  (0) 2023.07.10
[Java] 추상화  (0) 2023.07.08
[Java] 유형에 따른 사용 메모리 정리  (0) 2023.07.08