추상클래스와 인터페이스의 차이

바그다드·2023년 2월 4일
0

추상 클래스 : 클래스 안에 하나 이상의 추상 메소드가 구현되어 있는 클래스
인터페이스 : 클래스 안의 모든 메소드가 추상 메소드

두 개가 하는 일은 서로 비슷하다. 서브 클래스가 슈퍼 클래스에 정의 되어 있는 추상 메소드를 구현하도록 강제한다.

하지만 서로 사용하는 목적에서 차이를 보인다.

추상 클래스

  1. 먼저 추상 클래스는 슈퍼 클래스에 구현되어 있는 메소드나 필드 등은 그대로 상속 받아 사용(재사용)하고 슈퍼 클래스에 존재하는 추상 메소드를 서브 클래스에서 구현하여 기능을 확장(확장)시켜 나가는데 사용한다.
    • 일반 메소드와 멤버 변수 선언이 가능
  2. public, private 등의 접근 제한자나 static, final등이 아닌 필드를 가질 수 있다.
  3. extends 키워드를 사용하여 상속하며, 다중 상속은 불가능하다.
    • 슈퍼 클래스의 기능들을 하위 클래스에서 확장시켜 나가기 위해 사용
    • 재사용과 확장의 개념

인터페이스

  1. 반면에 인터페이스는 함수의 이름만 선언하여 인터페이스를 상속받는 클래스들이 같은 기능(행동)을 구현하도록 보장하는데 목적이 있다.
  2. 모든 메소드는 추상 메서드여야 한다.
    • 모든 멤버 변수는 public static final이어야 하고 이를 생략할 수 있음
  3. implements 키워드를 사용하여 상속하며, 다중 상속이 가능(','를 이용)
    • 인터페이스에서 정의된 메소드(기능)를 클래스에서 구현하도록 하기 위해 사용

혹시 잘못된 부분이 있다면 알려주시면 감사하겠습니다!

profile
꾸준히 하자!

0개의 댓글