본문 바로가기

Back-end/Java

[Java] 인터페이스와 추상 클래스의 차이점

인터페이스구현 객체가 같은 동작을 한다는 것보장하기 위해 사용합니다.

다중 상속이 가능하고, 인터페이스를 구현하는 집합간에는 관계가 없을 수 있습니다.

 

인터페이스는 다른 클래스를 작성하는데 도움을 주는 목적으로 기본 설계도라고 표현합니다.

public static final사용 목적인터페이스 변수는 아무 인스턴스도 존재하지 않는 시점이기 때문에 스스로 초기화 될 권한이 없습니다. 때문에 public static final을 사용해 구현 객체의 같은 상태를 보장합니다.

 

interface 인터페이스 이름 {
	public static final 상수이름 = 값;
    public abstract void 메서드 이름();
}

 

 

추상 클래스객체의 추상적인 상위 개념으로 공통된 개념을 표현할 때 사용합니다.

단일 상속만 가능하고, 추상 클래스를 상속하는 집합간에는 연관관계가 있습니다.

 

상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스이며, 미완성 설계도라고 표현합니다.

선언부만 작성하고 구현부는 작성하지 않은 채로 남겨두며, 추상 메서드는 상속받는 클래스에 따라 달라질 수 있습니다.

상속을 위한 클래스이기 때문에 따로 객체를 생성할 수 없습니다.

 

abstract class 클래스 이름 {
	...
    public abstract void 메서드 이름();
}