• Home
  • About
    • KKsDev photo

      KKsDev

      게임 프로그래머를 목표로 Unity, C#을 공부하고 있습니다.

    • Learn More
    • Email
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

인터페이스와 추상클래스

14 Nov 2023

Reading time ~1 minute

  1. 기술 면접 예상 질문 - 인터페이스와 추상클래스의 차이를 설명해주세요.

nbcbanner



기술 면접 예상 질문 - 인터페이스와 추상클래스의 차이를 설명해주세요.

인터페이스와 추상클래스는 모두 객체의 일부분을 추상화하여 정의하고 실제 객체는 상속, 구현을 통해서 구현하는 방법입니다.

둘다 직접적으로는 객체를 생성할 수 없습니다.

인터페이스는 필드를 가질 수 없고 어떤 메서드의 시그니처를 정의하는 것으로 인터페이스를 구현한 클래스에게

특정 메서드의 정의를 강요하는 방법입니다. 이때 인터페이스에서는 메서드를 아예 구현할 수 없었으나

C# 8.0 버전 부터는 디폴트 인터페이스 멤버를 구현할 수 있다고 합니다.

인터페이스를 구현한 하위 클래스에서 같은 상황에서 발생할 객체마다의 다른 기능을 정의할 수 있습니다.

그리고 C#에서는 다중 상속을 지원하지 않지만 인터페이스의 구현에는 아무런 제약이 없습니다.

추상 클래스는 어떤 객체를 추상화 한 클래스로 필드를 가지고 abstract로 메서드를 구현할 수 있습니다.

abstract는 virtual과는 다르게 하위클래스에게 해당 메서드의 오버라이딩을 강요합니다.

추상 클래스는 상속해서 사용해야 되기 때문에 C#처럼 다중 상속을 지원하지 않는 경우에는 다른 클래스를 상속 받을 수 없다는 특징이 있습니다.

결국 인터페이스와 추상클래스의 차이는 필드와 일반 메서드를 가질 수 있냐 없냐의 차이와 다중 상속에서의 제약에서 차이가 있습니다.



nbcthumbnail



TIQ내일배움캠프스파르타기술 면접 예상 질문 Share Tweet +1