다형성이란?
같은 타입이지만 다양한 동작을 수행할 수 있는 능력이다.
개념만봐서는 무슨 소린지 확실히 알 수 없다. 하지만 이러한 상속에서의 다형성을 잘 표현할 수 있는 기능이 두 가지가 있다. 그것이 바로 virtual 과 abstract 기능이다.
virtual
abstract
둘의 공통된 기능은 부모의 기능을 물려받아 자식 class에서 기능을 재정의 할 수 있다는 것이다.
여기서 두 기능의 차이점을 설명하자면
virtual은 메인에서 코드를 실행할 때 virtual이 사용된 부모에게 가서 자식이 재정의 돼있으면 그 기능을 사용하고 아니면 부모의 기능을 사용한다. 즉, 자식class에서 재정의가 강제되지 않는다.
abstract는 기능을 상속받은 자식class는 부모의 기능을 무조건 구현해야만 한다.
두 차이점을 잘 인지하고 사용해야 하는 이유는 예를 들어 게임을 만든다고 가정하면 무조건 기능을 상속받아야 하는 부분이 있고 상황에 따라 사용하고 싶은 부분도 있을 것이다. 그럴 때 이 기능들을 알맞게 잘 사용한다면 효율이 높은 코드를 만들 수 있다. 하지만 virtual 과 abstract의 무분별한 남용은 오히려 코드를 망칠 수 있다는 점을 알아두자.
'TIL > C#' 카테고리의 다른 글
개인 프로젝트 ConsoleRPG 3일 차 (0) | 2023.08.22 |
---|---|
개인 프로젝트 ConsoleRPG 2일 차 (0) | 2023.08.21 |
개인 프로젝트 ConsoleRPG 1일 차 (0) | 2023.08.18 |
C# LeetCode - 80 Largest Rectangle in Histogram 풀이 (0) | 2023.08.17 |
C# for문 주의사항 (0) | 2023.08.16 |