일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 소규모프로젝트
- 깃허브
- 리듬게임
- 게임제작
- 인터페이스
- Euler
- ARProgect
- 리듬게임에디터
- 병맛게임
- 1인개발
- AR Foundation
- 확장메서드
- 로케트
- 델리게이트
- Unity
- 유니티
- 짐벌락
- C#
- ExtensionMethod
- callbyreference
- github
- raycast
- 레이캐스트
- ar
- Quaternion
- AR게임
- 게임
- callbyvalue
- 게임개발
- AR세팅
- Today
- Total
Ssssong += Dev
[C#] 추상클래스와 인터페이스 본문
추상클래스, 추상함수(abstract)
기능이 여기서 완성되지 않음. 상속하는 자식에서 기능을 완성시켜 주어야 함.
추상함수를 하나 이상 포함하고 있는 클래스이다.
미완성된 클래스이기 때문에 해당 클래스를 상속받는 자식들은 완성되지 않은 함수들을 완성시켜 주어야 한다.
추상클래스 자체로는 완성되지 않았기 때문에 객체를 찍어낼 수 없으며 인스턴스화 할 수도 없다.
추상함수(추상메서드)는 구현이 이루어지지 않고 정의만 할 수 있다.
클래스 다이어그램에서 << abstract >> 로 클래스를 표시하며 추상 메서드는 void { abstract } 이렇게 표시한다.
'해당 클래스를 구현하는 틀'이라 볼 수 있으며 협업할 때 중요하게 다뤄진다.
인터페이스(interface)
해당 추가 기능을 꼭 구현하겠다는 약속. 인터페이스 기능의 구현은 실체화라고 한다.
유니티에서 IPointerClickHandler 와 같은 기능을 생각하면 된다.
다중 상속이 가능하며 해당 기능들을 반드시 가지고 있을 것을 약속한다.
가상함수(virtual)
자식함수에서 override해서 사용할 수 있는 완성된 함수이다.
완성된 함수기 때문에 추상함수나 인터페이스와 달리 필수적으로 재정의하지 않아도 된다.
부모클래스에서 virtual로 선언해 두고,
필요한 자식클래스에서 override하거나 override하지 않으면 부모클래스 함수를 그대로 사용한다.
추상클래스와 인터페이스의 차이
추상클래스는 클래스의 틀, 인터페이스는 기능의 추가라 생각하면 된다.
https://holjjack.tistory.com/41
'개발 > 공부' 카테고리의 다른 글
[유니티, C#] foreach, 콜렉션 (0) | 2022.06.14 |
---|---|
[유니티, C#] 깊은 복사 ConvertAll (0) | 2022.06.13 |
[유니티] 스크립트 직렬화 (0) | 2022.06.08 |
[유니티] Stencil buffer (0) | 2022.05.27 |
[유니티] 거리, 방향 계산 참고 포스트 (0) | 2022.05.23 |