[java] 자바 추상 클래스와 인터페이스의 접근 제어자의 차이
자바에서 추상 클래스와 인터페이스는 객체 지향 프로그래밍의 핵심 개념입니다. 이 두 가지 개념은 다른 방식으로 정의되고 사용됩니다. 이번 포스트에서는 자바 추상 클래스와 인터페이스의 접근 제어자에 대해 알아보겠습니다.
추상 클래스의 접근 제어자
추상 클래스는 하나 이상의 추상 메서드를 포함하는 클래스입니다. 추상 클래스의 접근 제어자는 일반 클래스와 마찬가지로 public
, protected
, default
, private
를 사용할 수 있습니다. 접근 제어자는 추상 클래스의 멤버(필드, 메서드, 내부 클래스 등)에 적용됩니다.
public
: 어디서든 접근 가능protected
: 동일한 패키지 내에서, 또는 상속받은 클래스에서 접근 가능default
: 동일한 패키지 내에서만 접근 가능private
: 동일 클래스 내에서만 접근 가능
추상 클래스의 추상 메서드는 자식 클래스에서 반드시 구현되어야 합니다. 따라서 추상 메서드의 접근 제어자는 public
또는 protected
로 설정하는 것이 일반적입니다.
인터페이스의 접근 제어자
인터페이스는 클래스와 달리 다중 상속을 지원하며, 클래스가 구현해야 할 메서드를 정의하는 역할을 합니다. 인터페이스의 접근 제어자는 항상 public
으로 설정됩니다. 즉, 모든 클래스에서 인터페이스에 접근할 수 있습니다.
인터페이스의 메서드는 기본적으로 public
으로 선언되며, 구현 클래스에서 상속받은 메서드는 public
또는 protected
로 오버라이딩될 수 있습니다.
정리
- 추상 클래스의 접근 제어자는
public
,protected
,default
,private
로 설정할 수 있으며, 추상 메서드는 반드시 구현되어야 합니다. - 인터페이스의 접근 제어자는 항상
public
이며, 인터페이스의 메서드는 기본적으로public
으로 선언됩니다.
이상으로 자바 추상 클래스와 인터페이스의 접근 제어자에 대해 알아보았습니다. 이러한 제어자는 클래스와 인터페이스의 활용 방식과 목적에 따라 선택되어야 합니다.
더 자세한 내용은 다음 참고 자료를 참고하시기 바랍니다: