728x90
반응형
18. interface랑 abstract를 비교해서 설명해 주세요
추상 클래스(abstract)
추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스입니다.
미완성 설계도라 표현하며 상속을 위한 클래스이므로 따로 객체를 생성할 수 없습니다.
- 추상 메서드 : 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 코드
abstract class 클래스명 {
public abstract void 메서드명();
}
추상 클래스 특징
- 추상 클래스는 인스턴스(객체)를 만들 수 없는 클래스입니다.
- 추상 메서드는 하위 클래스에서 메서드의 구현을 강제합니다.
- 추상 메서드를 포함하는 클래스는 반드시 추상 클래스입니다.
- 상속하는 집합 간에 연관관계가 있습니다.
- 다중 상속이 불가능합니다.
인터페이스(interface)
추상 클래스처럼 다른 클래스를 작성하는데 도움을 주는 목적으로 작성하고 클래스와 다르게 다중상속 이 가능합니다.
interface 인터페이스명{
public static final 상수 = 값;
public abstract void 메서드명();
}
인터페이스 특징
- 모든 멤버 변수는 public static final 이어야 하며 이는 생략 가능합니다.
- 모든 메서드는 public abstract 이어야 하며 생략 가능 합니다.
- java 8부터는 static, default method를 사용 가능 합니다.
- 다중 상속 가능 합니다.
- 상속하는 집합 간에는 연관관계가 존재하지 않을 수 있습니다.
차이점
추상 클래스 | 인터페이스 |
상속하여 공통된 기능을 만들고 확장하기 위함 | 구현하는 객체들이 같은 동작을 보장하기 위함 |
다중상속 불가 | 다중상속 가능 |
생성자, 일반변수 모두 가능 | 생성자, 일반변수 모두 불가 |
메서드를 부분적으로 구현 가능 | 메서드 선언만 가능 |
extends 키워드 사용 | implements 키워드 사용 |
728x90
반응형
'백수 > java' 카테고리의 다른 글
20. 스프링의 MVC에 대해 설명하세요 (0) | 2023.08.16 |
---|---|
19. 다형성에 대해서 설명해 보세요. (0) | 2023.08.14 |
17. JVM이 하는 역할이 무엇인가요? (0) | 2023.08.11 |
16. 상속과 컴포지션(합성)의 차이에 대해서 설명해보세요 (0) | 2023.08.07 |
14. 박싱과 언박싱에 대해 설명하세요 (0) | 2023.08.03 |