카테고리 없음

면접대비 질문 답

1vdlrwnsv1 2025. 4. 22. 20:45

객체지향 프로그래밍의 속성 중 하나인 다형성과 이를 활용한 설계의 장점에 대해 설명해주세요.

 

컴파일타임(정적) 다형성

1. 오버로딩

같은이름이 메서드를 매개변수 타입/개수에 따라 다르게 정의

 

2. 런타임(동적)다형성

오버라이딩 

부모클래스의 메서드를 자식클래스가 재정의

virtual과 override키워드 사용

 

다형성의 핵심: 부모타입으로 자식객체를 참조

 

다형성을 활용한 설계의 장점

유연성 증가, 코드 재사용성 향상, 확장성 향상, 결합도 감소

 

 

 

override와 overload에 대해 설명해주세요.

 

오버로드 : 같은 이름의 매개변수(타입/개수) 다르게해서여러개 정의하는것

 

같은 클래스 안에서 사용

리턴타입은 다르게 못하고 매개변수 시그니처가 달라야함

 

 

오버라이드: 부모클래스의 메서드를 자식 클래스에서 재정의해서 동작을 바꾸는것

 

상속관계에서 사용

부모메서드는 virtual 자식은 override 키워드 필요

 

차이 요약

 

구분 Overload Override
관계 같은 클래스 상속된 클래스
키워드 없음 virtual / override
바인딩 시점 컴파일 타임 런타임
목적 다양한 입력 대응 부모 메서드 동작 변경
기준 매개변수 시그니처 부모 메서드 이름

 

확장 메서드에 대해 설명하고 어떻게 활용했는지 알려주세요.

 

확장 메서드: 기존 타입(클래스, 구조체 등) 새로운 메서드를 인스턴스 변경하지 않고도 추가할수 있는 기능

static 클래스 안에 정의

this 키워드를 사용해서 첫번쨰 매개변수에 확장대상 타입 명시

 

 

콜백이란 무엇인가요? 콜백을 사용해본 경험이 있을까요?

 

 

callback은 다른 메서드에 인자로 넘겨져서 특정 시점에 호출되는 함수

 

총을 쏘면 코루틴을 사용하여 반동을 주고 반동이 끝나고 남은 총알이 없을때 재장전 함수를 콜백하는 식으로 활용 했었으나

손과의 애니메이션 연계가 되지 않아 삭제

 

델리게이트(delegate; 대리자)란 무엇인가요?

 

C#에서 메서드를 변수처럼 다룰 수 있게 해주는 타입

 

 

C#의 event란 무엇인가요?

 

어떤것이 발생했을때 알림을 보내는 매커니즘

버튼 클릭, 충돌, 애니메이션 끝남같은 사건이 발생했을때 실행되는 함수를 등록하는 시스템

 

델리게이트 기반으로 작동 

특정 이벤트가 발생했을 때 미리 등록된 메서드를 순차적으로 실행

+= -= 구독, 구독해제