1. 완벽한 추상화를 제공 :
2. 모든 메서드가 추상화(추상 메서드)임
3. 프로젝트 진행 시 표준 규약에 따름
==> 추상 클래스보다 더 많이 사용됨
4. 인터페이스는 상수와 추상 메서드로만 구성이 되어 있음
5. 모든 변수는 상수가 됨
ex) public static final로 인식함
6. 모든 메서드는 추상메서드가 됨
ex) public abstract로 인식 함
7. 인터페이스는 객체 생성이 불가능함
8. 자식 클래스로 상속을 하여 자식 클래스에서 객체를 생성
9. 인터페이스는 다중 상속을 제공함
10. class -> interface 키워드 사용
extends -> implements 키워드 사용
사용 목적 :
스펙을 주어 클래스들이 그 기능을 서로 다르게 구현할 수 있도록 하는 클래스의 규격 선언이며 클래스의 다형성을 실현하는 도구임
<예시>
=============================코드=============================
public interface Inter { // class 대신 interface로 작성
int num = 50; // 인스턴스 멤버변수 - 상수
void output1(); // 추상 메서드
void output2(); // 추상 메서드
}
인터페이스인 Inter 클래스를 상속받을 Sub 클래스 생성

=============================코드=============================
public class Sub implements Inter {
@Override
public void output1() {
System.out.println("인터페이스 output1() 메서드 재정의!");
}
@Override
public void output2() {
System.out.println("인터페이스 output2() 메서드 재정의!");
}
}
메인으로 출력할 Inter_01 클래스 생성
=============================코드=============================
public static void main(String[] args) {
// 인터페이스는 객체 생성 불가능 (가능하기는 함..! 추후 설명 예정)
// Inter inter = new Inter(); (X)
Sub sub = new Sub();
// static final 상수로 인식을 함. num은 상수이기 때문에 값이 새롭게 줘도 변하지 않음!!
// sub.num = 237;
sub.output1();
sub.output2();
}
=============================실행=============================
