백지부터 시작하는 이세계 코딩 생활

override, overload 본문

백지부터 시작하는 이세계 유니티 생활 since 2020

override, overload

조아덕 2020. 11. 17. 15:05
override

상위클래스의 상속이 이루어진 하위클래스에서 매서드 재정의를 해주는 것을 의미한다.
i.e ) 상위클래스의 매서드를 하위클래스에서 재정의하는 것을 뜻한다.

상속해주는 Method 에 virtual (키워드) 를 붙여주고,
상속받는 Method 에 override (키워드) 를 붙여 준다.

i.e )
상위클래스 매서드를 하위클래스 내에서
자신(하위클래스)의 매서드로 재정의 하여 다른 기능으로 구현하기 위함이다. (다른 연산방식)

 

using UnityEngine;

public class Human
{
    public string name;
    public int age;
    public float tall;

    public Human() { } // 생성자 ( Default Contructor )
    
    // 상속하는 매서드
    public virtual void See()
    {
        Debug.Log("this is human class --> virtual see method");
    }
}
using UnityEngine;

public class Override : MonoBehaviour
{
    private void Start()
    {
        //virtual method
        Human C_Child = new Human();
        C_Child.See();

        //override method
        C_Child override_Child = new C_Child();
        override_Child.See();
    }

    private class C_Child : Human
    {
        public override void See()
        {
            base.See();
            Debug.Log("this is Override class --> override see method : here is C_Child Message");
        }
    }
}

 


overload

Mehode 들의 이름을 동일하게 사용하나 기능 구현을 다르게 할 목적으로 한다.
이때, 매겨변수의 타입이나 갯수를 다르게 하여 사용할 수 있다.

using UnityEngine;

public class Overload : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        int add_Int = Add(1, 2);
        print("add int result = " + add_Int);

        float add_Float = Add(10.0f, 20.0f);
        print("add float result = " + add_Float);

        double add_Double = Add(100d, 200d);
        print("add double result = " + add_Double);
    }

    #region METHOD : OVERLOAD
    int Add(int a, int b)
    {
        return a + b;
    }

    float Add(float a, float b)
    {
        return a + b;
    }

    double Add(double a, double b)
    {
        return a + b;
    } 
    #endregion
}

 

 

 


 

Ref.

m.blog.naver.com/artemis2494/221469742473

 

유니티 오버라이드

오버라이드는 부모 클래스 함수를 자식 클래스 함수에서 덮어씌워 자신만의 함수를 만드는 것이다, 예를 들...

blog.naver.com

https://itmining.tistory.com/36

 

[유니티 C# 기초 강의] 11. 클래스와 다형성

이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 서론 우리는 하나의 클래스로 여러 객체를 생성하는 것을 배웠습니다. 하지만 하나의 클래스로 만든 객체는 속성, 메소드가 다 똑 같기 때문에 너

itmining.tistory.com

kpro.tistory.com/41

 

오버라이딩 (Overriding) 과 오버로딩 (Overloading)

▷ C#의 Overriding 오버라이딩이란 상위 클래스에서 선언된 함수를 하위 클래스에서 재정의 해서 무시한다는 뜻입니다. 오버라이딩에 사용하는 키워드로 new, virtual, override 가 있습니다. 간단한 밑

kpro.tistory.com

smilejsu.tistory.com/520

 

[C#] Virtual 와 Override

상속 받은 클래스의 메소드를 재정의하고 싶을 때 Virtual 키워드를 사용한다. 이는 상속받은 각 클래스에 다른 연산 방식을 정의하고 싶을때 사용한다. 연산자(메소드) 재정의를 위해서는 상속할

smilejsu.tistory.com

 

'백지부터 시작하는 이세계 유니티 생활 since 2020' 카테고리의 다른 글

Coroutine, IEnumerator, yield return  (0) 2020.11.17
parameter, argument  (0) 2020.11.17
Time.deltatime  (0) 2020.11.17
Update(), Input.GetKey()  (0) 2020.11.16
unity 3D movement 구현하기  (0) 2020.11.15
Comments