백지부터 시작하는 이세계 코딩 생활
override, overload 본문
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
https://itmining.tistory.com/36
'백지부터 시작하는 이세계 유니티 생활 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