안녕하세요. 추상 클래스와 인터페이스의 차이에 대해서 알아보겠습니다.

 

 


 

추상 클래스 ( Abstract Class )는,

상속을 통해 기능을 이용하고 확장시키는데에 목적이 있습니다.

 

하지만 인터페이스는,

상속을 통해 메소드의 구현을 강제시켜 동일한 동작을 약속하도록 하는데에 목적이 있습니다.

 

 

표로 추상 클래스와 인터페이스의 특징을 정리해보면 다음과 같습니다.

  추상메소드 인터페이스
상속 extends 사용 implements 사용
정의 일반 변수, 일반 메소드 정의 O 추상 메소드만 정의
public static final 변수만 정의
( 생략 시 자동으로 정의됨 )
다중 상속 다중 상속이 불가능하다. 다중 상속이 가능하다.
생성자 생성자 정의가 가능하다. 생성자를 가질 수 없음.
형태 일반 변수 + 일반 메소드 + 추상 메소드 상수 + 추상 메소드
오버라이딩 추상 메소드만 오버라이딩 하면 된다. 상속받은 클래스는 모든 메소드를 구현해야 한다.

 

 


 

인터페이스에서 메소드는 추상 메소드만 정의가능하기때문에 모든 메소드를 오버라이딩해야하고, 

추상클래스는 추상 메소드만 오버라이딩하면 되고 일반 변수나 일반 메소드 정의가 가능하다는 차이점이 가장 큰 것 같습니다.

+ Recent posts