2019년 5월 20일 월요일

다형성 기초 abstract class(추상클래스)

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GreetingTest : MonoBehaviour {
    // Use this for initialization
    void Start()
    {
        var greetings = new List<GreetingBase>();
        greetings = new List<GreetingBase> { new GreetingMorning(), new GreetingAfternoon(), new GreetingEvening() };
        //greetings.Add(new GreetingMorning());
        greetings.Add(new GreetingBase()); //추상클래스 또는 인터페이스의 인스턴스를 만들수 없음
        foreach (var obj in greetings)
        {
            Debug.Log(obj.GetMessage());
        }
        //결과 GoodMorning 2
        //Good Afternoon 1
        //Good night 1
        //추상클ㄹ
    }
    // Update is called once per frame
    void Update () {
}
}
abstract class GreetingBase
{
    public virtual string GetMessage()
    {
        return "";
    }
}
class GreetingMorning : GreetingBase
{
    public override string GetMessage()
    {
        return "GoodMorning";
    }
}
class GreetingAfternoon : GreetingBase
{
    public override string GetMessage()
    {
        return "Good Afternoon";
    }
}
class GreetingEvening : GreetingBase
{
    public override string GetMessage()
    {
        return "Good night";
    }
}
cs

댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...