인터페이스-설계용으로 사용함.
구현코드가 없는(추상메서드) 메서드로 이루어진 클래스
인터페이스 선언 예시
인터페이스에서 멤버변수는 pre컴파일 단계에서 public static final 키워드가 자동삽입됨.
인퍼테이스에서 메서드는 pre컴파일 단계에서 public abstract 키워드가 자동 삽입됨.
즉 인터페이스는 상수와, 추상메서드가 선언됨.
인터페이스에 모든 메서드를 구현하지 않으면 추상클래스가 되어야 한다.
인터페이스를 구현할때는 상속에서 extends를 썼던것과 달리 implements 키워드를 사용해야한다.
인터페이스를 일부 구현하면 추상클래스이다.
위 예시는 인터페이스 일부를 구현한 추상그래슬를 상속받아 나머지 인터페이스 메서드까지 모두 구현한 클래스이다.
자바에서 인터페이스 implements는 타입상속
자바에서 클래스 extends는 구현상속 이라함.
타입상속 또한 상속이므로
와 같은 문법도 가능하다.(업캐스팅)
Calc는 인터페이스 이기때문에 인스턴스 생성불가.
Calculator또한 추상클래스 이므로 인스턴스 생성 불가
상속은 여러개 클래스를 상속 받을 수 없다. 하지만 인터페이스는 여러개 구현가능하다.(타입상속 이기 때문에)
'JAVA' 카테고리의 다른 글
[JAVA] 기초문법 - 인터페이스(3) (0) | 2021.10.19 |
---|---|
[JAVA] 기초문법 - 인터페이스(2) (0) | 2021.10.03 |
[JAVA] 기초문법 - 추상클래스와 템플릿 메서드 (0) | 2021.10.03 |
[JAVA] 기초문법 - 추상클래스 활용하기 (0) | 2021.10.03 |
[JAVA] 기초문법 - 다형성 활용과 다운캐스팅 (0) | 2021.10.03 |