본문 바로가기
C#/WPF

[WPF] 생성자 Overloading (2)

by HJ0216 2024. 5. 11.

프로젝트 준비를 하면서 미리 코드를 작성해보다 마침 정리했던 개념인 생성자 Overloading를 사용해보았습니다.

 

상속을 받으면 NullPointerException이 나고, 하나의 생성자를 사용하면 문제없이 동작하여 생성자를 상속받을 때 부모 생성자의 코드 삽입 위치를 한 번 정리해보고자 합니다.

 


🤓 처음에 글을 작성할 때, Overloading을 Overriding으로 잘못 적었는데,

다시 한 번 정리하면 다음과 같습니다.

Overloading: 메서드 이름은 같지만 매개변수 개수나 타입등을 달리한 여러 개의 메서드를 정의하는 것

Overriding: 부모 클래스에서 상속받은 메서드의 내용을 '재정의' 하는 것

 

⭐ 현재 생성자의 경우, 이름은 같지만 매개변수 개수가 다르게 정의하고 있으므로 Overloading


 

1
2
3
4
5
6
7
8
9
public ViewModelMain()
{
    string name = TempPracticeModel.Name;
}
 
public ViewModelMain(PracticeModel model) : this()
{
    TempPracticeModel = model;
}

 

만일 이러한 생성자 Overloading이 있을 경우,

코드의 실행 순서는

  1. 매개변수가 없는 생성자

  2. 매개변수가 있는 생성자

 

🚨 따라서, 매개변수가 있는 생성자에서 객체를 초기화해주는데 그보다 앞서 매개변수가 없는 생성자에서 해당 객체에 접근하고 있으므로 NullPointerException 발생

 

⭐ 생성자의 호출 순서 유의

 

 

 

📚 참고 자료

 

[Java]class: 오버라이딩(overriding)과 오버로딩(overloading)

TIL이나 알고리즘 문제 풀이 정도 업로드 하였지만 공부하면서 기록하는게 리마인드도 되고 좋을 것 같다는 생각이 들어 오늘부터 시작한다.전문적인 기술 블로그가 아닌 개인적으로 공부하며

velog.io

 

'C# > WPF' 카테고리의 다른 글

[WPF] ObservableCollection  (0) 2024.05.15
[WPF] View, ViewModel Singleton  (0) 2024.05.12
[WPF] 생성자 Overloading  (1) 2024.04.27
[WPF] 한글 Encoding ANSI / UTF8  (0) 2024.04.22
[WPF] Static Resource와 Dynamic Resource  (0) 2024.04.20