[Study] Java | 08 인터페이스

DAVEMINS·2023년 10월 17일
0

Java

목록 보기
8/15
post-thumbnail

08-1 인터페이스

  • 인터페이스 선언

인터페이스 : 객체 사용 방법을 정의한 타입, 개발 코드와 객체가 서로 통신하는 접점 역할

개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해 사용

public interface 인터페이스 이름 {...}

상수 필드 : public static final 타입 상수 이름 = 값;

추상 메소드 : public abstract 리턴 타입 메소드 이름(매개변수, …);

  • 인터페이스 구현

구현 객체 : 인터페이스에서 정의된 추상 메소드와 동일한 메소드 이름, 매개타입, 리턴 타입을 가진 실체 메소드를 가진 객체

구현 클래스 : 구현 객체를 생성하는 클래스

객체는 다수의 인터페이스 타입으로 사용될 수 있따

  • 인터페이스 사용

인터페이스로 구현 객체를 사용하는 방법

08-2 타입 변환과 다형성

  • 자동 타입 변환

인터페이스의 다형성 : 프로그램 소스 코드는 변함이 없는데, 구현 객체를 교체함으로써 프로그램 실행 결과가 다양해지는 것

자동 타입 변환 : 구현 객체가 인터페이스 타입으로 변환되는 것

  • 필드의 다형성

필드 타입으로 인터페이스를 선언하면 필드값으로 구현 객체를 대입할 수 있다

  • 매개 변수의 다형성

매개변수의 타입이 인터페이스일 경우 어떠한 구현 객체도 매개값을 사용할 수 있고, 어떤 구현 객체가 제공되느냐에 따라 메소드의 실행 결과는 다양해질 수 있다.

💡 조금 헷갈리기 시작했다. 상속이랑 무슨 차이인가? 되는 기능과 안되는 기능의 차이도 모호하다. 상속을 확실히 알고 인터페이스를 알아야겠다는 생각이 든다.
  • 강제 타입 변환
구현클래스 변수 = (구현클래스) 인터페이스 변수;
  • 객체 타입 확인

강제 타입 변환 → 구현 객체가 인터페이스 타입으로 변환되어 있는 상태에서 가능

  • 인터페이스 상속

다중 상속을 허용

하위 인터페이스로 타입 변환이 되면 상위 및 하위 인터페이스에 선언된 모든 메소드를 사용할 수 있으나, 상위 인터페이스로 타입 변환되면 상위 인터페이스에 선언된 메소드만 사용 가능하고 하위 인터페이스에 선언된 메소드는 사용할 수 없다

0개의 댓글