Java의 인터페이스는 메서드 프로토타입의 사양입니다. 프로그래머를 안내해야 할 때마다 또는 유형의 메소드와 필드가 어떻게 되어야 하는지를 지정하는 계약을 맺을 때마다 인터페이스를 정의할 수 있습니다.
이 유형의 개체를 만들려면 이 인터페이스를 구현하고 인터페이스의 모든 추상 메서드에 대한 본문을 제공하고 구현 클래스의 개체를 가져와야 합니다.
예
interface Sample {
void demoMethod1();
void demoMethod2();
void demoMethod3();
}
public class InterfaceExample implements Sample {
public void demoMethod1() {
System.out.println("This is demo method-1");
}
public void demoMethod2() {
System.out.println("This is demo method-2");
}
public void demoMethod3() {
System.out.println("This is demo method-3");
}
public static void main(String args[]) {
InterfaceExample obj = new InterfaceExample();
obj.demoMethod1();
obj.demoMethod1();
obj.demoMethod3();
}
} 출력
This is demo method-1 This is demo method-2 This is demo method-3
인터페이스를 구현하는 동안 인터페이스의 모든 추상 메서드를 재정의해야 하지만 추상 메서드 재정의를 건너뛰면 컴파일 시간 오류가 생성됩니다.
예
interface Sample {
void demoMethod1();
void demoMethod2();
void demoMethod3();
}
public class InterfaceExample implements Sample {
public void demoMethod1() {
System.out.println("This is demo method-1");
}
public void demoMethod2() {
System.out.println("This is demo method-2");
}
public static void main(String args[]) {
InterfaceExample obj = new InterfaceExample();
obj.demoMethod1();
obj.demoMethod2();
}
} 출력
InterfaceExample.java:6: error: InterfaceExample is not abstract and does not override abstract method demoMethod3() in Sample
public class InterfaceExample implements Sample{
^
1 error 그러나 여전히 하나의 추상 메서드만 재정의하려는 경우 -
나머지 메소드를 구현하지 않은 상태로 둘 수 있습니다. -
로예
interface Sample {
void demoMethod1();
void demoMethod2();
void demoMethod3();
}
public class InterfaceExample implements Sample {
public void demoMethod1() {
System.out.println("This is demo method-1");
}
public void demoMethod2() {
}
public void demoMethod3() {
}
public static void main(String args[]) {
InterfaceExample obj = new InterfaceExample();
obj.demoMethod1();
obj.demoMethod2();
obj.demoMethod3();
}
} 출력
This is demo method-1
int는 인터페이스의 기본 메소드를 구현하는 데 필수가 아니므로 나머지 메소드를 선언할 수 있습니다. default -
로예
interface Sample {
void demoMethod1();
default void demoMethod2() {
System.out.println("Default demo method 2");
}
default void demoMethod3() {
System.out.println("Default demo method 3");
}
}
public class InterfaceExample implements Sample {
public void demoMethod1() {
System.out.println("This is demo method-1");
}
public static void main(String args[]) {
InterfaceExample obj = new InterfaceExample();
obj.demoMethod1();
obj.demoMethod2();
obj.demoMethod3();
}
} 출력
This is demo method-1 Default demo method 2 Default demo method 3