● 인터페이스(interface)
- 메서드 : 일반 메서드는 없고 전부 추상 메서드(public abstract)로만 구성한다.
abstract를 안적어도 자동으로 추상메서드가 된다는 뜻이다.
- 속성 : 일반 멤버 필드는 없고 public static final로 선언된 상수만 있다.
- 직접 객체를 생성하는 것은 불가능하고, implements 키워드를 이용하여 다른 클래스로 구현할 때에는 객체 생성이 가능하다.
- 구현된 클래스에서는 반드시 추상 메서드를 재정의해야 한다.
- 인터페이스 자체가 강제력이 높다.
● 인터페이스 용도
- 낮은 결합도 유지
- 설계 사상을 코딩 단계에서 구현
(인터페이스를 implement하게 되면 추상메소드를 의무적으로 재정의(오버라이딩) 해야하므로 설계단계에서 인터페이스를 통해 정의한 내용을 코딩단계에서 클래스로 구현되도록 강제할 수 있으므로 산업현장에서 사용)
● 기타
- 1차적으로 업캐스팅된 상태에서 사용한다.
- 클래스다이어그램에서 인터페이스를 구성할 때는 점선으로 사용한다.
< 실습>
- 리모컨으로 조종 기능
< 실행화면 >
- 볼륨 추가
< 실행화면>
- 스마트티비 웹브라우저 기능 추가
< 실행화면 >
- 타이어브랜드에 상속하기
기본값은 한국타이어로 설정했다.
- 금호타이어 추가
< 다중상속 >
class A {}
class B {}
class C extends A,B {} 이렇게는 다중상속이 되지 않지만
interface A {}
interface B {}
class C implement A,B {} 이렇게 인터페이스를 사용하면 다중 상속이 가능하다.
다중상속이 가능한 이유?
인터페이스는 실질적인 구현이 이루어지지 않고 메소드에 대한 선언만 하고 있기 때문에 메소드가 겹치더라도 최종 구현 부분은 구현 객체에서 이루어질 것이기 때문에 interface는 다중상속이 가능하다.
'IT수업 > JAVA PART1' 카테고리의 다른 글
IT 수업 12주차 (29) 상속_추상클래스 (0) | 2024.03.11 |
---|---|
IT 수업 12주차 (28) 상속_업, 다운캐스팅 (0) | 2024.03.11 |
IT 수업 11주차 (26) 상속 (0) | 2024.03.08 |
IT 수업 11주차 (24) 배열 (0) | 2024.03.07 |
IT 수업 11주차 (23) String (0) | 2024.03.07 |