| 1. Basics | 클래스, 객체, 변수, 메서드 // 생성자, 초기화 |
| 2. Advanced | 상속, 오버라이딩 // package, import, modifiers, 다형성 // 추상클래스, 인터페이스, 내부클래스 |
| 8. 인터페이스(interface) | 1. 인터페이스 2. 인터페이스의 작성 3. 인터페이스의 상-하 관계 4. 인터페이스의 구현 5. 인터페이스를 이용한 다중 상속 6. 인터페이스를 이용한 다형성 7. 인터페이스의 장점 8. 인터페이스의 이해 9. 디폴트 메서드 |
7.1 인터페이스 '추상 클래스보다 더 추상적 구체적인 것이 거의 없음'
-클래스, 특히 abstract 클래스와 유사
-모든 멤버변수: 자동으로 public static final로 정의됨
-모든 메서드: 구현 없이 선언만 있고 자동으로 public abstract로 선언됨
7.2 인터페이스의 특징
interface 인터페이스이름 {
public static final 타입 상수이름 = 값;
public abstract 리턴타입 메서드이름(매개변수목록);
}
-인스턴스를 생성할 수 없음
-다른 클래스 작성에 도움을 줄 목적으로 사용
- 인터페이스끼리 계승
-인터페이스는 인터페이스로부터만 계승
-클래스와 달리 다중상속(여러 부모)이 허용됨
-최고상위인터페이스라는 것은 없음(like 클래스의 class Object)
7.3 인터페이스의 구현
:인터페이스에 정의된 추상메서드를 완성하는 것
class 클래스이름 implements 인터페이스이름 {
//인터페이스에 정의된 추상메서드를 구현
}

7.4 인터페이스를 이용한 다중상속
:클래스는 다중상속이 불가능하기 때문에 우회적으로 인터페이스를 이용해서 클래스를 다중상속할 수 있음.
*이 방법은 클래스를 다중상속하는 방법들 중 전형적 방법에 해당함.

7.5 인터페이스를 이용한 다형성(시험-중요)-인터페이스 타입의 참조변수로 인터페이스를 구현한 클래스의 인스턴스 참조 가능
-인터페이스 타입으로 형변환 가능

-메서드의 매개변수 타입으로 지정 가능

-메서드의 리턴타입으로 지정 가능

7.6 인터페이스의 장점(시험-x)

7.9 디폴트 메서드
추상 메서드의 기본적인 구현을 제공하는 메서드(인터페이스에 추가된 일반 메서드)

-추가된 디폴트 메서드와 기존 메서드와의 이름 충돌 해결 규칙
1. 여러 인터페이스의 디폴트 메서드 간의 충돌
-인터페이스를 구현한 클래스에서 디폴트 메서드를 오버라이딩 해야함
2. 디폴트 메서드와 상위 클래스 메서드 간의 충돌
->상위 클래스의 메서드가 상속됨 디폴트 메서드는 무시됨
=> 1.과 2.의 이유로 디폴트 메소드는 사용 지양
'CSE > CP1 이론' 카테고리의 다른 글
| CP1_07. 객체지향프로그래밍_Advanced_1. 계승 (0) | 2024.06.11 |
|---|---|
| CP1_06. 객체지향프로그래밍_Advanced_6. 다형성 (0) | 2024.06.10 |
| CP1_07. 객체지향프로그래밍_Advanced_추상클래스 (0) | 2024.06.10 |
| CP1_06.객체지향 프로그래밍_Basics_2 (0) | 2024.06.05 |
| CP1_07.객체지향 프로그래밍_Advanced_4. Modifier(제어자) (0) | 2024.05.29 |