섀도잉
위와 같이 코딩을 하였을 때, 콘솔 창에 출력되는 것은 함수 A에서 생성된 num의 값인 20이다.
이와 같이 특정 영역에서 이름이 겹쳐져 다른 변수를 가리는 것을 섀도잉 이라고 한다!
하이딩
하이딩과는 달리 부모 클래스와 자식클래스 간에 동일한 이름으로 변수를 생성하여 사용하는 상황이다.
Main문을 보았을때 과연 무엇이 출력 될 것이라고 생각하는가?
정답은 ? " Shadowing "이 출력 된다. 섀도잉과 비슷하게 가장 가까운 클래스 내부의 문자열 변수를 사용한다고 생각하면 된다.
하이딩을 사용하는 것은 정상적인 상속을 막으므로 되도록이면 변수명을 다르게하여 하이딩 상황이 일어나지 않도록 하는 것이 좋겠다.
'프로그래밍 > C#' 카테고리의 다른 글
델리게이트(delegate)와 이벤트(event) (0) | 2019.03.21 |
---|---|
WPF DLL 생성 및 Mainwindow에서 ChildWindow로 창 전환 (0) | 2019.02.26 |
WPF 속성 창이 화면에 나타나지 않을 때 (0) | 2019.02.25 |
오래된 파일을 지우는 함수 작성 (0) | 2019.02.05 |
WPF 모든 버튼 컨트롤을 탐색하는 방법 (0) | 2019.01.14 |