안녕하세요. pitang입니다.
8장 인터페이스 뒷부분을 보도록 하겠습니다.
인터페이스 - 타입 변환
구현 객체가 인터페이스 타입으로 변환되는 것은 자동 타입 변환에 해당한다.
자동 타입 변환은 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 말한다.
인터페이스 변수 = 구현 객체;
인터페이스 구현 클래스를 상속해서 자식 클래스를 만들었다면 자식 객체 역시 인터페이스 타입으로 자동 타입 변환시킬 수 있다.
ex1)
ex2)
강제 타입 변환을 해서 다시 구현 클래스 타입으로 변환한 다음, 구현 클래스의 필드와 메서드를 사용할 수 있다.
구현 클래스 변수 = (구현 클래스) 인터페이스 변수;
-> 프로그램 정상 종료 가 출력된다.
ex3)
instanceof 연산자는 인터페이스 타입에서도 사용할 수 있고 어떤 객체인지 확인해 안전하게 강제 타입 변환을 해야 한다.
인터페이스 - 익명 구현 객체
소스파일을 만들지 않고도 구현 객체를 만들 수 있는 방법이 익명 구현 객체이다.
클래스와 인스턴스(객체)를 한 번에 만들 수 있다.
익명 구현 객체의 코드 패턴은
인터페이스 변수 = new 인터페이스() {
//인터페이스에 선언된 추상 메서드의 실체 메서드 선언
};
이다.
new 연산자 뒤에는 클래스 이름이 와야 하지만 이름이 없다.
인터페이스() {}는 인터페이스를 구현해서 중괄호 {}와 같이 클래스를 선언하라는 뜻이고,
new 연산자는 이렇게 선언된 클래스를 객체로 생성한다.
중괄호 안에는 인터페이스에 선언된 모든 추상 메서드들의 실체 메서드를 작성해야 한다. 그렇지 않으면 컴파일 에러가 발생한다.
ex)
-> 구현 클래스의 메서드 1 이 출력된다.
-> MyInterface2()에는 method1의 메서드가 있으므로 재정의를 꼭 해줘야 함.
인터페이스 추상 메서드 사용
구현 객체가 인터페이스 타입에 대입되면 인터페이스에 선언된 추상 메서드를 개발 코드에서 호출할 수 있게 된다.
ex)
-> 보통 메서드
추상 메서드 재정의 가 출력된다.
감사합니다.
*m1 맥북을 사용 중입니다.*
'6개월 대장정 > JAVA 개념' 카테고리의 다른 글
19일차 - 예외 처리(2) (0) | 2021.09.08 |
---|---|
18일차 - 예외 처리(1) (0) | 2021.09.07 |
17일차 - 인터페이스(1) (0) | 2021.09.06 |
16일차 - 추상클래스, static(정적), final필드 (0) | 2021.09.03 |
15일차 - 상속(타입 변환과 다형성) (0) | 2021.09.02 |