본문 바로가기

JAVA

[JAVA] 기초문법 - 인터페이스

인터페이스-설계용으로 사용함.

구현코드가 없는(추상메서드) 메서드로 이루어진 클래스

인터페이스 선언 예시

인터페이스에서 멤버변수는 pre컴파일 단계에서 public static final 키워드가 자동삽입됨.

인퍼테이스에서 메서드는 pre컴파일 단계에서 public abstract 키워드가 자동 삽입됨.

즉 인터페이스는 상수와, 추상메서드가 선언됨.

인터페이스에 모든 메서드를 구현하지 않으면 추상클래스가 되어야 한다.

인터페이스를 구현할때는 상속에서 extends를 썼던것과 달리 implements 키워드를 사용해야한다.

인터페이스를 일부 구현하면 추상클래스이다.

위 예시는 인터페이스 일부를 구현한 추상그래슬를 상속받아 나머지 인터페이스 메서드까지 모두 구현한 클래스이다.

자바에서 인터페이스 implements는 타입상속

자바에서 클래스 extends는 구현상속 이라함.

타입상속 또한 상속이므로

와 같은 문법도 가능하다.(업캐스팅)

Calc는 인터페이스 이기때문에 인스턴스 생성불가.

Calculator또한 추상클래스 이므로 인스턴스 생성 불가

상속은 여러개 클래스를 상속 받을 수 없다. 하지만 인터페이스는 여러개 구현가능하다.(타입상속 이기 때문에)