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