코드를 재사용하는 전통적 방법
이미 만들어진 클래스에 새로운 코드와 기능을 덧붙여 새로운 클래스를 만드는 방법
이미 구현되어 있는 기능은 다시 만들 필요가 없다
이미 구현되어 있는 기능을 확장하여 새로운 기능 생성 가능
상속에만 의존하면 오히려 기존 코드를 재사용하기 힘든 경우 발생
-> Unity에서는 이러한 한계를 극복하기 위해 컴포넌트 패턴을 사용
부모 클래스에서 작성한 메서드를 자식 클래스에서 재정의
virtual
virtual 키워드로 지정된 메서드는 가상 메서드가 된다
가상 메서드는 자식 클래스가 오버라이드 할 수 있도록 허용된 메서드이다
protected virtual void Awake()
{
}
override
자식 클래스는 override 키워드를 사용해 부모 클래스의 가상 메서드를 재정의 할 수 있다
protected override void Awake()
{
base.Awake();
}
base
base 키워드는 부모 클래스의 메서드를 지칭한다
base 키워드를 사용해 오버라이드 되기 전의 원형 메서드로 접근이 가능하다
오버로딩은 같은 이름의 메서드가 매개변수의 개수나, 타입, 순서가 다르게 정의 되는 것
오버로딩의 활용
같은 이름의 메서드를 사용하여 다양한 기능을 제공하고자 할 때
오버라이딩의 활용
부모 클래스의 메서드를 사용 및 수정하고 싶을 때
미리 만들어진 컴포넌트를 조립하여 완성된 오브젝트를 만드는 방식
컴포넌트
: 한 가지 대표 기능을 가진 부품
게임 오브젝트
: 컴포넌트를 붙일 수 있는 뼈대의 역할
컴포넌트 패턴
: 원하는 기능을 제공하는 컴포넌트를 찾아 게임 오브젝트에 붙여 실질적인 기능을 부여