코드네임 :

JAVA - interface 인터페이스 본문

👾Android/JAVA

JAVA - interface 인터페이스

비엔 Vien 2024. 5. 21. 02:54

콘센트에 플러그만 꼽히는 가전제품이라면 종류에 상관없이 다 가능

=

위처럼 이 인터페이스만 충족하면 다 사용할 수 있음

 

 

인터페이스

- 그 자체가 public

- 모든 필드가 public static final 로 정의 (생략가능)  == 상수필드라고 부른다

- 모든 메서드가 public abstract 로 정의 (디폴트 메서드 제외, 생략가능) == 추상메서드라고 부른다

- 디폴트 메서드는 public으로 정의 (생략가능)

- 자체적으로 객체 생성 불가 (생성자가 없음!!!) ⭐️

여기 interface A 앞에 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