Java

[JAVA] 인터페이스(Interface)란?

Dero Lee 2021. 12. 28. 02:47
728x90

 

인터페이스 

 

   앞으로 만들 클래스의 메소드 규격을 선언해주는 것

 

  •  클래스의 메소드 형식을 미리 선언하고, 인터페이스를 이용해(implements) 만드는 클래스는 인터페이스의 메소드   를 정의해야 함. 
  • 특정 클래스에 어떠한 기능이 있을지 미리 파악 가능.
  • 클래스의 기능이 너무 많고, 구획화를 할 필요가 있을 때 인터페이스 이용.
  • 협업을 할 때, 서로 공통적으로 적용해야 할 규격이 있을 때 이용.

 

인터페이스의 규칙

 

1. 인터페이스의 이름은 클래스와 마찬가지로 보통 첫 글자를 대문자로 만들며,
    "~를 할 수 있는" 것들의 규격이라는 의미로 형용사의 이름을 붙이기도 함.

2. 클래스를 상속할 때는 하나의 클래스로부터 상속받을 수 있는 것과 대조적으로 인터페이스는 여러 개를 모두 적용할 수 있음.  (주의: 적용한 인터페이스들의 메소드를 모두 구현해야 함.)

3. 인터페이스에는 초기화 된 변수를 정의할 수 있고, 인터페이스를 적용한 클래스는 변수를 재할당 할 수 없음.

 

 

각각의 인터페이스 특성에 맞춰 구현한 클래스와 객체를 생성한 예시는 다음과 같다.

 

interface Calculable {
	double PI = 3.14;
	int sum(int v1, int v2);
}
interface Printable {
	void print();
}
class RealCal implements Calculable, Printable {
	public int sum(int v1, int v2) {
		return v1 + v2;
	}
	public void print() {
		System.out.println("this is RealCal!!!");
	}
}
class AdvancedPrint implements Printable {
	public void print() {
		System.out.println("This is RealCal!!!");
	}
}


public class interfaceApp {

	public static void main(String[] args) {
		Printable r = new RealCal();
		Printable r2 = new AdvancedPrint();
		r.print();
		r2.print();
	}
}
728x90