song.log

[자바 기술면접] 15. 인터페이스 vs 추상클래스 본문

StudyLog/Java interview

[자바 기술면접] 15. 인터페이스 vs 추상클래스

SingaKorean 2023. 4. 29. 17:10
반응형

- 정의  

인터페이스 : 메서드의 선언만 있고, 구현은 없는 추상적인 클래스의 일종입니다. 인터페이스는 구현을 담당하는 클래스들 사이의 규칙을 정의하는데 사용됩니다. 인터페이스를 구현하는 클래스는 인터페이스에서 선언된 메서드들을 반드시 구현해야 하며, 이를 통해 다형성과 코드의 재사용성을 높일 수 있습니다.

 

추상클래스 : 하나 이상의 추상 메서드를 포함하는 클래스입니다. 추상 메서드는 구현이 없는 메서드로, 하위 클래스에서 반드시 구현되어야 합니다. 추상클래스는 미완성된 클래스이기 때문에 인스턴스를 생성할 수 없습니다. 대신, 추상클래스를 상속받는 하위 클래스에서 추상 메서드를 구현하고 인스턴스를 생성할 수 있습니다. 또한, 추상클래스는 일반 메서드와 변수를 포함할 수 있으며, 이들은 하위 클래스에서 직접 상속받아 사용할 수 있습니다.

 

- 공통점

추상 메서드를 가진다.

인스턴스화 불가 (new 키워드 사용 불가)

인터페이스/추상클래스를 구현하거나 상속한 클래스는 해당 추상 메서드들을 모두 구현하여야 한다.

인터페이스/추상클래스를 상속받아 구현한 클래스의 인스턴스를 사용해야 한다.

 

- 차이점

  인터페이스 추상클래스
키워드 interface abstract
변수 모두 가능 static final (상수)
접근 제어자 모두 가능 public
메소드 모두 가능 abstract / default / static / private method
상속 키워드 implements extends
다중 상속 가능 불가능

 

 

- 영어 정리 : 

Interface :  a collection of abstract methods and constants that can be implemented by classes. It defines a set of methods that a class implementing the interface must provide. Interfaces are used to achieve abstraction and provide a mechanism for separating the declaration of behavior from the implementation. interfaces are an important feature of Java that enable abstraction, modularity, and code reuse.

 

Abstract class : a class that is declared with the abstract keyword and may or may not have abstract methods. An abstract class cannot be instantiated, which means you cannot create an object of that class directly. Instead, it is meant to be extended by concrete subclasses that implement the abstract methods.

반응형
Comments