코드네임 :
JAVA - interface 인터페이스 본문
콘센트에 플러그만 꼽히는 가전제품이라면 종류에 상관없이 다 가능
=
위처럼 이 인터페이스만 충족하면 다 사용할 수 있음
인터페이스
- 그 자체가 public
- 모든 필드가 public static final 로 정의 (생략가능) == 상수필드라고 부른다
- 모든 메서드가 public abstract 로 정의 (디폴트 메서드 제외, 생략가능) == 추상메서드라고 부른다
- 디폴트 메서드는 public으로 정의 (생략가능)
- 자체적으로 객체 생성 불가 (생성자가 없음!!!) ⭐️
인터페이스 구성 요소
[ 인터페이스 필드 ]
상수(constant) 필드 선언 가능
-> 권장하지 않음!
- 데이터를 저장한 인스턴스 또는 정적 필드 선언이 불가능!
- 상수이름은 대문자로 작성하되 서로 다른언어로 구성되어있을시 언더바
[ 인터페이스 메서드 ]
1. 추상 메서드 선언
- 인터페이스를 통해 호출된 메서드는 최종적으로 객체에서 실행됨
- 인터페이스의 메서드는 실행블록 필요없는 추상메서드로 선언
2. 디폴트 메서드
- 인터페이스 내부의 완성된 메서드
- 메서드 앞에 default 키워드 추가
- 오버라이딩도 가능
디폴트 메서드 작성법!
자식클래스에서 부모인터페이스의 디폴트 메서드 호출법
3. 정적(static) 메서드
- 클래스 내부의 정적메서드와 사용방법 동일
- 객체 생성없이 클래스 이름으로 바로 접근 가능
- 인터페이스의 정적메서드 특징은 클래스와 동일
[ 인터페이스 구현 : implements ]
구현(implement) 클래스
- 인터페이스에서 정의된 추상메소드를 재정의해서 실행내용을 가지고 있는 클래스
- 다중구현 가능
다중 인터페이스 구현 클래스
- 객체는 다수의 인터페이스 타입으로 사용 가능 (다중 구현 가능)
인터페이스 상속
- 다중 상속 가능!!!!
정리하자면..
[ 클래스와 인터페이스의 관계 (구현과 상속) ]
- 동일한 타입(클래스/인터페이스) 상속시 extends
- 다른 타입을 상속하는 경우 implements
인터페이스 객체
- 자체로는 객체생성 불가
인터페이스 필요성
<인터페이스를 사용하지 않는 경우>
⬇️
<인터페이스를 사용한다면?!>
'👾Android > JAVA' 카테고리의 다른 글
JAVA - 기본 API -String, Object, Wrapper / Scanner (0) | 2024.05.23 |
---|---|
자바 퀴즈 (0) | 2024.05.21 |
JAVA - 추상 abstract (0) | 2024.05.21 |
JAVA - final (0) | 2024.05.18 |
JAVA - super (0) | 2024.05.16 |