본문 바로가기
카테고리 없음

[코딩일기] C# interface(인터페이스)

by mania2321 2024. 7. 24.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// 인터페이스 : '어떠한 메소드가 여기 있기로 했습니다' 라고 약속하는 것.
// class를 만드는 것이 아니라 약속을 만드는 것.
// 클래스와 구분하기 위해서 public interface 'I'- 라는 대문자를 앞에 붙이는 관습

// interface는 메소드들의 이름으로만 구성되어 있다.
// 다른 class에서 기능 구현을 해야됨.

// class 같은 경우에는 : Monobehavior와 같이 상속할 class를 적지만, 이 자리에 interface를 적으면, '이 interface를 구현하겠습니다' 라는 뜻.
// interface를 가지는 해당 class는 interface 내에 있는 메소드를 해당 class에서 실제 기능을 가지게 된다. 

public interface ITurnOnable
{
    // 전원 기능이 존재한다는 약속을 하는 것. 
    public void TurnOn();
    public void TurnOff();
}

 

============================================================

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TV : ITurnOnable       // ITurnOnable 인터페이스를 따름
{
    public void TurnOff()
    {
        Debug.Log("전원 버튼을 한 번 더 눌려");
    }

    public void TurnOn()
    {
        Debug.Log("전원 버튼을 한 번 눌러");
    }
}

 

============================================================

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Car : Animal, ITurnOnable       // 동물이자, 온오프 기능이 있는 물건이 되는 것. (ITurnOnable 인터페이스를 따름) ==> 다중상속
                                             // 상속도 받고, 인터페이스도 구현하고. 
{
    public void TurnOff()
    {
        Debug.Log("차 키를 돌려서 뽑아");
    }

    public void TurnOn()
    {
        Debug.Log("차 키를 열쇠구멍에 넣고 돌려");
    }

    public override void Fly()
    {
        Debug.Log("밴~~신~~~");       // 변신해서 날기
    }
}

 

============================================================

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HelloWorld : MonoBehaviour
{
    private void Start()
    {
        Car porsche = new Car();
        porsche.TurnOn();       // 포르쉐 시동 켜기
        porsche.TurnOff();       // 포르쉐 시동 끄기

        ITurnOnable someCar = new Car();        // 인터페이스를 타입명으로 쓸 수 있음.

        someCar.TurnOn();      // someCar는 뭔지는 모르겠지만 켤 수 있는 물건이 되는 것임.
    }
}

댓글