Java

추상 클래스와 인터페이스: 이해와 차이점

개발만파볼까 2023. 5. 27. 22:31
728x90
반응형
SMALL

자바(Java)와 같은 객체 지향 프로그래밍 언어에서, 추상 클래스(Abstract Class)와 인터페이스(Interface)는 클래스가 어떤 메서드를 가져야 할지를 정의하고 그 구조를 설계하는 데 있어 중요한 역할을 합니다. 그러나 이 두 개념 사이에는 중요한 차이점이 있습니다.

 

 

추상 클래스(Abstract Class)

추상 클래스는 추상 메서드(즉, 선언만 있고 구현 내용이 없는 메서드)를 포함할 수 있는 클래스입니다. 추상 클래스는 객체를 직접 생성할 수 없습니다. 대신에 다른 클래스가 이를 상속 받아서 추상 메서드를 구현하도록 설계됩니다.

추상 클래스의 특징:

  • 추상 메서드를 포함할 수 있습니다.
  • 구현된 메서드도 포함할 수 있습니다.
  • 클래스를 상속하면 추상 클래스의 메서드를 모두 구현해야 합니다.
  • 추상 클래스는 객체를 직접 생성할 수 없습니다.

 

 

인터페이스(Interface)

인터페이스는 클래스 또는 프로그램이 가져야 할 메서드의 '프로토콜' 또는 '서명'을 정의합니다. 인터페이스는 객체를 생성할 수 없지만, 인터페이스를 구현하는 클래스는 인터페이스에서 정의한 모든 메서드를 구현해야 합니다.

인터페이스의 특징:

  • 인터페이스의 모든 메서드는 기본적으로 추상 메서드입니다.
  • 인터페이스의 메서드는 public이며, 변수는 public static final입니다.
  • 인터페이스는 다중 상속을 지원합니다.
  • 인터페이스는 객체를 생성할 수 없습니다.

 


다음은 추상 클래스와 인터페이스의 주요 차이점을 요약한 표입니다: 

  추상 클래스 인터페이스
추상 메서드 포함 가능 기본적으로 포함
구현된 메서드 포함 가능 Java 8부터 가능
상속/구현 클래스가 상속 클래스가 구현
다중 상속 지원하지 않음 지원
접근 제한자 자유롭게 지정 가능 모두 public
객체 생성 불가능




 

728x90
반응형
LIST