본문 바로가기
2. Computer Science/언어

언어(Java, Kotlin)

by 로기(dev-loggi) 2022. 7. 10.

n. 추상 클래스와 인터페이스의 차이를 설명하시오.

인터페이스는 구현부와 상태를 갖지 않은 채로 규격만 정해져있는 구현체이고,

추상 클래스는 필수 기능과 상태만 구현되어 있는 채로 아직 미완성의 추상화 객체이다.

 

그러나 추상 클래스와 인터페이스는 추상 메소드를 갖는다는 공통점 때문에 언뜻 보면 비슷해 보이지만, 개인적으로 이 둘의 성격이 완전히 다르다고 생각한다.

 

인터페이스는 말 그대로 구현체가 정의해야 할 메소드만 명시해 놓은 "규격"으로써, 인터페이스를 구현한 클래스의 타입이라 할 수 있다.

반면에 추상 클래스는 단일 상속만이 가능하며 이미 상태와 기능을 갖고 태어난 놈이기에 클래스 타입이라고 할 수는 없고, 아직 미완성의 추상화된 부모 클래스라고 할 수 있다.

 

Java8 이후 부터 인터페이스에서도 default method 를 구현할 수 있게 됨으로써 추상 클래스와의 차이가 애매모호해지기는 했지만 이는 단순히 인터페이스의 불편한점(?) 혹은 자율성(?)을 부여해 준 것이라 생각하고, 위의 방식대로 각각의 목적성을 위해 사용한다면 충분히 잘 구분하여 사용할 수 있다고 생각한다.

 

 

 

 

functional Interface, default method 언제 사용하고 왜 등장했는가

1. 자바의 함수에 대해서 2. functional Interface는 언제 사용하는거고 왜 등장 했을까? 3. default method는 언제사용하고 왜 등장했을까? 4.추상클래스,인터페이스 비교 1. 자바의 함수 먼저 일급시민(first

syundev.tistory.com

 

 

아이템 [20] - 추상 클래스 보다는 인터페이스를 우선하라

자바에는 인터페이스와 추상 클래스를 제공한다. 또한 자바 8 부터는 인터페이스에 default method를 제공하게 되어 인퍼테이스와 추상 클래스 모두 인스턴스 메소드를 구현 형태로 제공할 수 있게

javabom.tistory.com

 

'2. Computer Science > 언어' 카테고리의 다른 글

OOP 5대 원칙과 4가지 특징  (0) 2022.07.10

댓글