JDK 1.7 버전과 1.8 이후의 인터페이스는 다르기 때문에 1.7 버전을 먼저 정리함
[ 인터페이스 ]
- 또 다른 형태의 클래스지만 클래스가 아니다
- 인터페이스는 추상메소드와 상수(static final)을 가질 수 있고 멤버변수는 가질 수 없다.
- 접근제한자는 무조건 public 이다.
- 객체 생성이 불가능하다. ( 하위클래스가 객체를 생성해야 한다. )
- 아래와 같이 키워드 생략이 가능하다. 그렇다고해서 default 접근제한자가 되는것은 아니다. 또한 메소드도 일반 메소드가 되는것이 아니다. 추상메소드이다
인터페이스를 작성할 때 interface 앞에 인터페이스 명을 선언하면 되는데 관례적으로 클래스는 첫 글자는 대문자로 작성하기 때문에 인터페이스는 I (대문자 아이)를 붙여주는게 관례이다.
[ implements ] (구현)
- 인터페이스를 사용하기 위해서는 implements 라는 키워드를 사용한다. 상속이 아닌 구현이다. 인터페이스 역시 IS-A 관계가 성립되어야 한다.
- 인터페이스를 구현한 클래스는 반드시 인터페이스의 추상메소드를 Override 해야 한다.
- 인터페이스는 기능만 구현한다. ( IS-A 관계 )
인터페이스는 다중 구현이 가능하다. ( 다중 상속 아닙니다. 자바는 단일 상속만 지원합니다. ) ,implements 뒤에 쉼표로 구분하면 됨. 시중에 나와있는 책 대부분 설명을 이상하게 함
'자바프로그래밍' 카테고리의 다른 글
Wrapper class (0) | 2020.04.23 |
---|---|
[JAVA] ArrayList 를 이용한 성적처리 프로그램 (0) | 2020.04.21 |
추상 클래스 (0) | 2020.04.10 |
상속 ( Inheritance ) (0) | 2020.04.07 |
메소드 오버로딩(Method Overloading) (0) | 2020.04.01 |