Learning
When: 1학년 5월 12일
How:
C#에서 인터페이스를 배우다가 자식과 부모의 관계에 대한 지식이 조금 부족한 것 같아서 공부를 하다가 알게 된 C#의 성질입니다.
Understanding:
만약 부모 클래스와, 그 부모를 따르는 자식 클래스가 많이 있다고 가정을 해보겠습니다. 이때 부모가 Animal이고, 자식이 Dog, Cat, Lion 등이라고 했을 때, Animal 클래스의 Sound 메서드를 virtual로 정한 다음, 자식들이 각자 Sound 메서드를 override했다고 가정하면, 모든 종류의 Sound를 호출하기 위해선 모든 종류의 변수를 만든 다음, 그 변수의 클래스에 맞는 생성자를 사용하여 객체를 생성해야 합니다. 이렇게 되면 메모리도 그렇고 정말 귀찮아집니다.
이때 다형성을 사용할 수 있는데, 부모 클래스에 있는 메서드는 모든 자식 클래스에 존재하기 때문에 (override된 메서드도 있지만 있긴 합니다), 부모 클래스 타입을 가진 변수가 자식 클래스의 객체를 참조할 수 있다는 것입니다! 이렇게 부모 타입의 자식 객체를 생성하면 부모 클래스 내에 있는 메서드를 자식의 구현으로 호출할 수 있는데, 객체만 바꾸어서 메서드를 호출하면 모든 자식의 메서드를 사용할 수 있습니다.
다형성은 이런 부모와 자식의 관계를 이용해서 사용할 수 있는 성질입니다.
Result: 다형성이란 부모의 타입인 변수가 자식의 객체를 참조할 수 있는 것이고, 이것을 쓰는 이유는 윗글을 읽어보시면 됩니다.
'C#' 카테고리의 다른 글
| [C#] out, ref 키워드 (0) | 2025.05.14 |
|---|---|
| [C#] 프로퍼티 (0) | 2025.05.13 |
| [C#] 빠른 입력과 출력 (0) | 2025.05.04 |
| [C#] switch문 (0) | 2025.05.03 |
| [C#] 동기와 비동기 (0) | 2025.04.30 |