인터페이스란?
구현된 것이 아무것도 없는 밑그림만 있는 기본 설계도이다.
특징
멤버 변수, 일반 구현 메서드를 가질수 없다.
== 추상메서드와 상수만을 멤버로 가질수 있다.
인터페이스는 표준, 약속(강제성있는 규칙), 규약을 의미한다.
추상클래스보다 추상화가 더 높다.
★ 주의! ★
● 모든 메서드가 추상 메서드로 선언됨 public abstract
● 모든 변수는 상수로 선언됨 public static final
● public abstract는 생략이 가능하다 ( = 컴퓨터가 자동으로 넣어줌)
implements를 사용해 구현이 가능하다
또한 여러 인터페이스를 ,(콤마)를 통해 구현이 가능하다.
( = 다중구현이 가능하다)
인터페이스 정의와 구현
인터페이스 구현과 형 변환
● 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 할 수 있다
● Calc calc = new CompleteCalc();
● 상속에서의 형 변환과 동일한 의미
● 클래스 상속과 달리 구현 코드가 없으므로 여러 인터페이스를 구현할 수 있음 ( cf. extends)
● 형 변환되는 경우 인터페이스에 선언된 메서드만을 사용가능함
변환되는 경우 인터페이스에 선언된 메서드만을 사용가능함
인터페이스가 하는 일
● 클래스나 프로그램이 제공하는 기능을 명시적으로 선언
● 일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세(specification)
● 클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있음
● 어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가
제공하는 모든 메서드를 구현했다는 의미임
● 인터페이스를 구현한 다양한 객체를 사용함 - 다형성
'JAVA' 카테고리의 다른 글
Java - 단위 , 진수 표현 (0) | 2023.09.18 |
---|---|
JAVA - Object 클래스 (0) | 2023.08.11 |
JAVA - StringBuffer , StringBuilder (0) | 2023.08.10 |
JAVA - String (상수 풀 영역) (0) | 2023.08.10 |
JAVA - 추상클래스 (0) | 2023.08.10 |