어떤 규칙을 강제하고 싶은 경우 규칙을 정의하는 방법 중 하나.
실제 기능을 구현하지는 않고, 정의만 해준다.
ex.
interface rule{
public void hello();
}
Interface를 사용하기 위해서는 사용할 클래스에서 implements 해줘야한다.
implements 시, 해당 interface에 있는 메소드는 implements한 클래스에서 재정의 해주어야 함.
Tip) 멀티쓰레드에서 연습한 코드 중 Runnable도 인터페이스에 의해 재정의 된 것이다.
ex.
class innerClass implements rule{
@Override
public void hello() {
System.out.println("hello!");
}
}
Tip) interface는 다중 implements가 가능하다.
interface rule{
public void hello();
}
interface rule2{
public void goodbye();
}
class innerClass implements rule, rule2{
@Override
public void hello() {
System.out.println("hello!");
}
@Override
public void goodbye() {
System.out.println("good bye!");
}
}
<전체코드>
public class main {
public static void main(String[] args) {
innerClass a = new innerClass();
a.hello(); // interface를 implements 한 기능
a.goodbye(); // interface를 implements 한 기능
}
}
interface rule{
public void hello();
}
interface rule2{
public void goodbye();
}
class innerClass implements rule, rule2{
@Override
public void hello() {
System.out.println("hello!");
}
@Override
public void goodbye() {
System.out.println("good bye!");
}
}
Tip) 한 파일에 클래스 여러개를 둘 수도 있다(inner class)