Abstract Class (추상 클래스) : 인터페이스 클래스와 역할이 거의 같다. 하지만 인터페이스와 달리 추상 클래스에서 내부 코드를 어느정도 정의해 둘 수 있다.
추상 클래스 내에 "하위 클래스들에게 직접 정의하도록"명령할 요소에 대해서는 abstract를 붙이면 된다.
추상 클래스 작성의 예
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 | using System.Collections; using System.Collections.Generic; using UnityEngine; //abstract : 추상 클래스. Interface와 같이 abstract를 상속받을 경우 //abstract 클래스 내부 구조를 그대로 구현해야한다. 단 여기서 일부를 구현해둘 수도 있다. public abstract class BaseMonster : MonoBehaviour { public float damage = 100f; public abstract void Attack(); //abstract부분은 하위클래스에서 직접 구현하도록 함. // Use this for initialization void Start () { } // Update is called once per frame void Update () { if(Input.GetKeyDown(KeyCode.Space)) { Attack(); } } } | cs |
추상 클래스를 상속하는 하위 클래스 작성의 예
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Goblin : BaseMonster { //Abstract Function public override void Attack() { //damage : BaseMonster 내부에 있는것을 상속. Debug.Log("Goblin attacks! Damage : " + damage); } } | cs |
'Programming > Unity - Reference' 카테고리의 다른 글
[Unity C# Reference] Properties (0) | 2018.06.11 |
---|---|
[Unity C# Reference] Interface Class (0) | 2018.06.11 |
[Unity C# Reference] Physics.Raycast (0) | 2018.06.11 |
[Unity C# Reference] Transform (0) | 2018.06.11 |
[Unity C# Reference] CoRoutine (0) | 2018.06.10 |