4. 추상 클래스, 인터페이스

추상 클래스

구현 코드 없이 메서드 선언만 있는 추상 메서드를 포함한 클래스
추상 클래스는 new 할 수 없음(인스턴스 생성 불가)
추상 클래스의 추상 메서드는 하위 클래스가 상속하여 구현

인터페이스

구현된 메서드가 없는 것(디폴트 메서드와 정적 메서드로 일부 구현된 메서드 존재 가능)

디폴트 메서드는 구현한 클래스들이 모두 공통적으로 갖게되는 메서드(오버라이딩 가능)
정적 메서드는 인스턴스 생성 여부 상관없이 인터페이스 타입으로 사용할 수 있는 메서드
private 메서드는 구현한 클래스가 사용하거나 오버라이딩이 안됨.(인터페이스 내부에서만 사용)

인터페이스는 기존 클래스와 다르게, 여러 인터페이스를 상속받을 수 있다.(다중상속 가능)

해당 클래스를 활용하기 위한 설명서 같은 역할(다형성에 유리)

모든 메서드가 추상 메서드임(public abstract)
모든 변수는 상수로 선언됨(public static final)
상속이 아닌 구현으로 해결.

인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 할 수 있음

1
Readable readable = new Reader();

이때, 당연히 인터페이스의 내용만 사용가능함.
클래스와 달리 여러 인터페이스를 구현할 수 있음

Share