본문 바로가기
JAVA/기초

[JAVA 기초] 10 인터페이스

by 푸_푸 2022. 8. 16.
728x90

*인터페이스
- 인터페이스 : 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할
추상 메서드와 상수로만 이루어져 있음

*implements 예약어
- implements : 인터페이스에 선언한 기능을 클래스가 구현한다는 의미

클래스에서 인터페이스를 구현할 때 해당 인터페이스 내의 추상 메서드를 구현하거나 추상 클래스로 만들어야 한다

*인터페이스 구현과 형 변환
인터페이스도 마찬가지로 상속 관계에서 하위클래스는 상위 클래스 자료형으로 묵시적 형 변환할 수 있다
상위 클래스형으로 선언한 변수에서는 상위 클래스의 메소드만 사용할 수 있다

*인터페이스의 역할
클라이언트 프로그램에 어떤 메서드를 제공하는지 미리 알려주는 명세 또는 약속의 역할을 한다
구현 코드 전체를 보지 않고 인터페이스의 선언부만 봐도 어떻게 사용할지 알 수 있다

*인터페이스와 다형성
다형성을 구현하여 확장성 있는 프로그램을 만들 수 있다
클라이언트 프로그램을 많이 수정하지 않고 기능을 추가하거나 다른 기능을 사용할 수 있다

*인터페이스 상수
인터페이스에 선언한 변수는 컴파일하면 상수로 변환된다

*디폴트 메서드
- 디폴트 메서드 : 기본으로 제공되는 메서드
인터페이스에서 구현하지만 인터페이스를 구현한 클래스가 생성되면 그 클래스에서 사용할 기본 기능이다
일반 메서드와 똑같이 구현. 메서드 자료형 앞에 defalt 예약어 사용

*정적 메서드
static 예약어 사용. 클래스 생성과 무관하게 사용할 수 있다
인터페이스 이름으로 직접 참조

*private 메서드
private 메서드는 인터페이스를 구현한 클래스에서 사용하거나 재정의 할 수 없다
기존에 구현된 코드를 변경하지 않고 인터페이스를 구현한 클래스에서 공통으로 사용하는 경우에 재사용성을 높일 수 있다
private 메서드는 코드를 모두 구현해야 하므로 추상 메서드에 사용할 수 없지만 static 예약어와 함께 사용할 수 있다.

*인터페이스 활용하기
- 한 클래스가 여러 인터페이스를 구현할 수 있음
- 두 인터페이스의 디폴트 메서드가 중복되는 경우 : 재정의하라는 오류 메시지가 나타나고 재정의된 메서드가 호출됨
- 인터페이스 간 상속(형 상속) : 상위 인터페이스에 선언한 추상 메서드를 모두 가지게 됨

728x90

댓글