728x90
반응형

추상클래스란?

추상클래스는 일반 클래스와 별 다를 것이 없음

단지, 추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스

그래서 미완성 설계도라고도 표현함

상속을 위한 클래스이기 때문에 따로 객체를 생성할 수 없음

class 앞에 "abstract" 예약어를 사용하여 상속을 통해서 구현해야한다는 것을 알려주고 선언부만 작성하는 추상메서드를 선언할 수 있음

 

abstract class 클래스이름 {
    ...
    public abstract void 메서드이름();
}

 

 

인터페이스란?

추상클래스가 미완성 설계도라면 인터페이스는 기본 설계도라고 할 수 있음

인터페이스도 추상클래스처럼 다른 클래스를 작성하는데 도움을 주는 목적으로 작성하고 클래스와 다르게 다중상속(구현)이 가능

interface 인터페이스이름 {
    public static final 상수이름 = 값;
    public abstract void 메서드이름();
}

 


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

추상 클래스와 인터페이스는 존재 목적이 다름

추상 클래스는 그 추상 클래스를 상속받아서 기능을 이용하고, 확장시키는 데 있음

반면 인터페이스는 함수의 껍데기만 있는데, 그 이유는 함수의 구현을 강제하여 구현 객체의 같은 동작을 보장할 수 있음

 

결론적으로 상속은 슈퍼클래스의 기능을 이용하거나 확장하기 위해 사용되고, 다중 상속의 모호성 때문에 하나만 상속 받을 수 있음

반면 인터페이스는 해당 인터페이스를 구현한 객체들에 대해 동일한 동작을 약속하기 위해 존재함

 

 

 

 

반응형

'면접 준비 > 기술 면접' 카테고리의 다른 글

servlet & jsp  (0) 2021.06.03
다형성  (0) 2021.06.02
프로세스 & 스레드  (0) 2021.01.22
라이브러리 & 프레임워크 & API  (0) 2021.01.21
Cookie와 Session의 차이  (0) 2020.12.09
복사했습니다!