C# 기본 문법(재정의, 오버로딩과 오버라이딩 차이, 추상화, Const)

로젠·2024년 4월 24일
0

게임 프로그래밍

목록 보기
20/49
post-thumbnail

재정의

virtual과 override를 사용하여 부모 클래스에 있는 함수와 같은 형태의 함수를 자식 클래스에서 재정의 하는 것을 말한다. 부모 클래스의 재정의는 가상화, 자식 클래스의 재정의는 오버라이딩이라고 한다. 만약 자식 클래스에서 부모 클래스의 함수를 부르고 싶으면 base를 사용하면 된다.

class Character
{
	public virtual void Move()
	{
		Debug.Log("A로 움직이다.");
  }
}
class Player
{
	public override void Move()
	{
		base.Move();
		Debug.Log("B로 움직이다.");
	}
}
class Monster
{
	public override void Move()
	{
		Debug.Log("C로 움직이다.");
	}
}

오버로딩과 오버라이딩의 차이

같은 이름으로 파라미터가 다르면 오버로딩 파라미터가 같으면 오버라이딩이다.

class Character
{
	int a;
    public Character()
    {
    }
  	public Character(int a)
  	{
  		this.a = a;
    }
} //오버로딩
class Character
{
	public virtual void Move()
	{
		Debug.Log("A로 움직이다.");
  }
}
class Player
{
	public override void Move()
	{
		Debug.Log("B로 움직이다.");
	}
} //오버라이딩

abstract

추상이라는 뜻으로 추상 함수를 만들면 정의를 하지 않고 자식 클래스에서 해당 함수를 정의한다. 추상 함수를 가지고 있으면 클래스 이름 앞에도 abstract를 사용하여 추상 클래스를 만들어줘야 한다. 추상 클래스는 동적할당이 불가능하다.

Const

const는 상수로 값을 변환할 수 없다.

0개의 댓글