Search
Duplicate
😀

13. 인터페이스

태그

인터페이스(interface)

추상 클래스보다 추상성이 더욱 심화된 개념
멤버 변수는 상수형으로 선언되어야 함
메서드는 모두 추상 메서드로 선언되어야 함
상수와 추상 메서드 외에 다른 멤버를 갖지 못하게 함으로써 추상 클래스보다 더욱 완벽한 추상화를 제공함
논리적으로 is a ~ 관계가 성립하지 않거나(상속 X) 다중상속을 받고 싶은 경우에 활용된다.

인터페이스의 정의

인터페이스 이름으로 직접 해당 상수를 사용하기 위해서는?
반드시 static 예약어를 final 예약어와 함께 사용해야 한다.
인터페이스의 변수 선언에 사용된 static final이나 메서드 선언에 사용된 abstract는 생략 가능

인터페이스의 활용

인터페이스는 추상 클래스와 유사하기 때문에 직접 객체화되지 못한다.
인터페이스의 상속 → 자식 클래스의 생성 → 자식클래스 객체 생성 → 프로그램 사용 순서를 따름
인터페이스를 상속하는 경우에는 implements 예약어를 사용한다.
인터페이스를 상속하는 경우 모든 추상 메서드를 Overriding 해야 한다.
인터페이스에 등록된 추상 메서드를 하나라도 Overriding 하지 않으면 추상 메서드가 상속되어 해당 클래스는 abstract 예약어가 붙은 추상 클래스로 선언된다.

인터페이스의 형변환

인터페이스 사용 시 클래스와 동일하게 묵시적 형변환과 명시적 형변환이 가능하다.
인터페이스 유형의 객체 참조 변수는 인터페이스에 선언된 요소에만 접근이 가능하다.
인터페이스를 구현한 객체의 요소에 접근하는 것은 허용되지 않는다.