Unity C# 상속 Inheritance

Intro

유니티 C# 상속

클래스 상속

부모 클래스

abstract public class Human : MonoBehaviour
{
    protected string MyName;
    protected int Age;

    protected virtual void Info()
    {
        print("나는 인간 입니다.");
    }

자식 클래스

public class Student : Human
{

    string schoolName;

    // Start is called before the first frame update
    void Start()
    {
        schoolName = "학교";
        MyName = "마동석";
        Age = 20;
    
        Info();
    }

    protected override void Info()
    {
        base.Info();
        PrintName();
    }
}

Student : Human 을 통해 Student 클래스는 Human 클래스를 상속받아 Human 클래스의 변수와 함수를 사용할 수 있게된다.

이때 접근지정자는 protected로 지정해 상속받은 클래스에서도 접근할 수 있도록한다.

Virtual 함수

부모 클래스에 있는 함수에 virtual 키워드는 자식 클래스에서 재정의(오버라이딩) 할 수 있도록 허용한다는 것이다.

재정의된 Info 함수

    protected override void Info()
    {
        base.Info();
        PrintName();
    }

재정의 할땐 override 키워드를 통해 재정의한다.

Abstract

abstract는 파생클래스에서 반드시 재정의해주어야 하는 함수앞에 쓰인다.

abstract 키워드를 사용하려면 해당 클래스도 abstract 를 붙여주어야한다.

abstract가 붙은 추상클래스는 인스턴스화 될 수 없다.

부모 클래스

abstract public class Human : MonoBehaviour
{

abstract protected void PrintName();
}

자식 클래스

  protected override void PrintName()
    {
        print(MyName);
        print(schoolName);
    }

실행 결과

1

참고자료

https://youtu.be/Qd-cnRYmbTY?list=PLUZ5gNInsv_O7XRpaNQIC9D5uhMZmTYAf

태그: ,

카테고리:

업데이트:

댓글남기기