오버라이드 : 부모 클래스에서 만들어놓은 함수를 자식 클래스에서 덮어씌워서 자기만의 것으로 새롭게 만드는 것
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 |
댓글