본문 바로가기
C#

오버라이드

by imagineer_jinny 2021. 7. 18.

오버라이드 : 부모 클래스에서 만들어놓은 함수를 자식 클래스에서 덮어씌워서 자기만의 것으로 새롭게 만드는 것

 

BaseRotator라는 부모 클래스를 만들고 회전은 자식들이 알아서 하는 스크립트를 만들고싶다!

즉 자식들이 Rotator 함수 안의 내부 구현을 맘대로 덮어씌우게 구현하고 싶다.

BaseRotator은 그저 Rotate 함수만 돌리도록.

 

virtual : 자식들이 덮어씌울 수 있다는 의미

즉 이친구가 가상으로써 존재하고, 다른 친구들이 덮어씌워서 진짜로 대체할 수 있다는 의미.

이제 Rotate는 자식들이 덮어 씌워 갈아치울 수 있음!

물론 덮어쓰지 않는다면 그대로 존재하고 덮어씌우면 덮어씌운채로 존재하는거고

 

부모 클래스인 BaseRotator 외에 각각 방향으로 회전시킬 자식 클래스들인 

X, Y, Z Rotator 스크립트를 만들어준다.

 

오버라이드를 할 때 : 함수의 형식이 같아야 함. 똑같은 규격으로 덮어쓰기 해야함.

즉, 부모 클래스에서 함수가 protected인데 자식에서 public으로 바꿀 수 없음.

이름도 다른 이름으로 바꿀 수 없음.

 

왼쪽이 부모, 오른쪽이 자식.

원래 override 하면 자식 코드로 싹다 바뀌고 부모꺼는 날라가는데

부모 코드를 유지하면서 밑에 자식 코드를 덧붙이고 싶다면

base.Rotate(); 추가해주고 그 밑에 붙일 코드 추가해주면 됨.

부모 클래스의 Rotate 안의 내용 지워도 됨

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

추상 클래스  (0) 2021.07.19
인터페이스  (0) 2021.07.19
상속 + 다형성, 집합  (0) 2021.07.18
리스트(List)  (0) 2021.07.13
정적 변수 + 정적 함수  (0) 2021.07.13

댓글