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

[코딩일기] C# override

by mania2321 2024. 7. 24.

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

public class Box  // 부모 클래스
{
    // 자식클래스가 부모클래스의 메소드를 덮어쓸 가능성이 있다면
    // 해당 부모클래스의 virtual을 입력 (public virtual void...)
    // 부모클래스를 덮어쓸, 해당 자식클래스에 override를 입력 (public override void...)
    // cf) 자식클래스에서 부모의 방법을 써야할 경우? ==> 자식 클래스 내에서 메소드 안에 baee.Introduce 를 입력하면 부모클래스의 Introduce를 불러옴

    public virtual void Introduce()     // 나중에 상속한 자식 클래스가 부모의 메소드를 덮어씌우도록 하고 싶을 땐, 덮어 씌워질 가능성이 있는 함수에 대해서 'virtual'선언을 해줌(내 자식이 이걸 덮어쓸 가능성이 있다는걸 미리 얘기해주는 것.)
    {
        Debug.Log("안녕하세요, 박스입니다.");
    }
    
    public void Dump(string thing)
    {
        Dump("아무나 ", thing);
    }

    public void Dump(string who, string thing)
    {
        Debug.Log(who + "씨, " + thing + " 좀 버려줘요.");
    }

    public void Dump(int number) 
    {
        Debug.Log(number + "개 버렸습니다");
    }
}

 

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

 

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

public class TrashBin : Box         // 자식클래스. 박스를 가지고 쓰레기통을 만들었다고 생각. TrashBin은 Box의 자식
{
    public override void Introduce()
    {
        // base.Introduce();   // base는 부모를 뜻함. 부모에 있는 Introduce로 들어감
        Debug.Log("안녕하세요, 저는 쓰레기통인데요?");
    }
}

댓글