2024. 7. 17. 12:36ㆍC#
안녕하세요. 진득 코딩입니다. 이번 시간에는 심화 문법 두 번째 시간으로 오버 로딩과 오버 라이딩에 대해서 살펴보도록 하겠습니다.
오버 로딩

메소드의 오버로드를 사용하여 같은 이름의 메소드를 사용할 수 있습니다. 단 각각의 메소드의 구분을 위해서 변수의 종류나 수는 달라야합니다. 이렇게 비슷한 기능을 같은 이름으로 구현하여 가독성을 높일 수 있습니다.

실습 예제를 보시면 같은 setCombatPoint 메서드에 바뀌는 변수의 수에 따라서 같은 이름의 다른 메서드들을 만들었습니다.
오버라이드

메소드 오버라이드는 상속일 때 사용할 수 있습니다. 위와 같이 shape에서는 say()라는 메서드가 Hi를 출력하지만 Square에서는 say()라는 메서드가 Hello를 출력합니다. 그래서 square.say()는 Hello를 출력하는 것을 확인할 수 있습니다. virtual은 오버라이드를 하라고 알려주는 이정표같은 것입니다.

virtual Method에 대해서 조금 더 살펴보도록 하겠습니다. 인스턴스를 만들 때 Shape square = new Square();이라고 만들면 부모인 Shape를 통해서 Square의 메서드인 getShape()를 호출할 수 있습니다.

위와 같이 weapon에 있는 getInfo()를 오버라이드해서 weapon Rifle = new Rifle();를 사용하여 Rifle을 호출할 수 있습니다.

메서드 중에서 오버라이드를 당하고 싶지 않은 메서드에 sealed를 입력하여 해당 메서드를 오버라이드하지 못하도록 막을 수 있습니다. 더이상 오버라이드를 하면 안되는 메서드에 적용해서 오버라이드를 예방할 수 있습니다.
'C#' 카테고리의 다른 글
[C#] Thread 이벤트로 구현한 코드 분석해보기 (4) | 2024.07.23 |
---|---|
[C#] 정적 메소드와 값을 참조하는 ref, out을 알아보자 (0) | 2024.07.18 |
[C#] 좀 더 심화된 C# 문법을 알아보자 (2) | 2024.07.16 |
[C#] C#으로 만든 계산기에 기능 추가해보자 (0) | 2024.07.11 |
[C#] C#으로 간단하게 계산기 만들어보기 (2) | 2024.07.11 |