안녕하세요 극꼼이입니다.
이 포스팅에서는 상속을 배우면서 공부한 virtual, override, abstract에 대해 정리할 생각입니다.
virtual, override, abstract는 모두 부모, 자식 함수간의 상속에 쓰이는 키워드입니다. 같은 내용의 코드를 여러 스크립트에서 반복하지 않도록 해줍니다.
1. virtual : 부모(상위) class에서 사용. 자식함수에서 재정의 가능하게 가상함수로 만들어 줌(본문 정의 가능). 접근 한정자는 public, internal, protected를 사용해야 함.
2. override : 자식(하위) class에서 사용. virtual함수를 재정의해줌
3. abstract : 부모(상위) class에서 사용(반드시 abstract 클래스여야 함). 자식함수에서 재정의 가능하게 추상함수로 만들어 줌(본문 정의 불가능). 접근 한정자는 public, internal, protected를 사용해야 함.
<사용 예시>
1. virtual - override (오버라이딩)
-> 부모 클래스에서 정의한 함수를 자식 클래스에서 재정의.
만약 부모 클래스에서 정의한 함수 내용도 사용하고 싶다면 다음과 같이 입력하면 됩니다.
이처럼 virtual(부모 클래스) - override(자식 클래스) 는 부모 클래스에서 이미 정의한 함수를 재정의 할 수도, 내용을 추가할 수도 있습니다.
2. abstract- override (추상클래스 상속)
abstract가 virtual과 다른 점은 abstract 함수를 가진 클래스는 본인도 반드시 abstract 클래스여야 한다는 것과, 부모 함수에서는 함수의 본문 내용을 정의할 수 없다는 것입니다.
여기까지 virtual, override, abstract에 대해 가볍게 알아보았습니다.
부족한 내용이 있으면 댓글 남겨주세요!
'[Unity] > [C#]' 카테고리의 다른 글
[C# 기초] #03 : 변수 - 접근지정자(public, private, protected) (0) | 2021.07.07 |
---|---|
[C#] 열거형 Enum과 string,int 형변환 방법 (0) | 2021.06.28 |
[C#] List 값 복사하기(참조하지 않고, 값만 복사하는 방법) (0) | 2021.05.24 |
[C# 기초] #02 : 변수 - 값 형식 / 참조 형식 (0) | 2021.05.15 |
[C# 기초] #01 : 변수 - 데이터형식(Data Type)과 형변환 (0) | 2021.03.29 |