본문 바로가기

Programming/Unity - Reference

[Unity C# Reference] Abstract Class

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