Deff_Dev

[Unity/C#] 메소드 숨기기, 오버라이딩 봉인 본문

Unity(유니티)/유니티 공부

[Unity/C#] 메소드 숨기기, 오버라이딩 봉인

Deff_a 2024. 3. 12. 02:02

해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다.

 

메소드 숨기기란 ?

  • 부모 클래스에 이미 같은 이름의 메서드가 존재하는 경우, 자식 클래스에서 이 메서드를 새롭게 구현하고자 할 때 사용
  • Unity/C#에서는 이럴 경우 new를 붙일 것을 권장하는 경고가 출력된다.

경고

 

 

메소드 숨기기 예제

 

new 키워드를 작성하지 않고 함수를 선언해도 Test.Heal()을 호출하면 "특수 치료"가 출력된다.

 

그럼에도 사용하는 이유는 new 키워드를 사용함으로써 경고를 없애고, 코드를 명확하게 해서 다른 프로그래머들에게 이 메소드가 의도된 함수라는 것을 알려주기 위해서 사용한다.


오버라이딩 봉인하기

  • 메소드를 오버라이딩 (override) 할 수 없도록 봉인할 수 있다.
  • virtual로 선언된 가상 메소드를 오버라이딩한 버전의 메소드만 가능하다.

sealed 키워드를 붙히면 해당 클래스를 상속하는 자식 클래스에서 override를 봉인한다.

 

클래스나 메소드의 재정의를 방지하여 오버라이드된 기능이 변경되거나 무시되는 것을 방지할 수 있다.