추상 클래스 VS 인터페이스

yuzu sim's avatar
Jan 05, 2024
추상 클래스 VS 인터페이스
 
 
인터페이스
  • 모든 메서드가 추상 메서드
    • 인터페이스의 메서드는 구현을 가지지 않고 선언만 있다.
      즉, 인터페이스는 메서드의 껍데기만을 제공하고 구현은 해당 인터페이스를 구현하는
      클래스에서 이뤄져야 한다.
  • 다중 상속 지원
    • 여러 인터페이스를 동시에 구현할 수 있습니다. 클래스는 여러 인터페이스를 구현하여
      다양한 동작을 수행할 수 있습니다.
  • 구현을 강제하지만 구현 내용을 정의하지 않음
    • 인터페이스는 특정 동작을 강제하지만 그 동작을 어떻게 수행할지에 대한 구현 내용은
      제공하지 않는다.
       
추상화 클래스
  • 추상 메서드와 일반 메서드 모두 가능
    • 추상 클래스는 일부 메서드를 추상 메서드로 선언하고, 일부 메서드는 구현을 가질 수 있다.
      추상 메서드는 하위 클래스에서 반드시 구현되어야 한다.
  • 단일 상속만 지원
    • 추상 클래스는 하나의 클래스만을 상속받을 수 있다.
      따라서 다른 클래스를 상속받으면서 공통된 특성을 가져오려면 추상 클래스를 사용해야 한다.
  • 일부 구현을 제공하며 일부는 서브 클래스에게 위임
    • 추상 클래스는 일부 메서드의 구현을 제공하면서, 나머지 일부는 하위 클래스에게 위임한다.
 
간단히 말하면, 인터페이스는 구현이 없는 껍데기만을 제공하고, 다중 상속을 지원하며 어떤 일을 해야 할지만 정의하고, 반면에 추상화 클래스는 부분적인 구현을 포함하고, 단일 상속을 지원하며 구체적인 동작도 정의한다.
 
Share article

More articles

See more posts

Coding_study