Inheritance

Jihyun·2023년 12월 11일
0

Unity 2D

목록 보기
5/10

상속

코드를 재사용하는 전통적 방법
이미 만들어진 클래스에 새로운 코드와 기능을 덧붙여 새로운 클래스를 만드는 방법

상속의 장점

이미 구현되어 있는 기능은 다시 만들 필요가 없다
이미 구현되어 있는 기능을 확장하여 새로운 기능 생성 가능

상속의 한계

상속에만 의존하면 오히려 기존 코드를 재사용하기 힘든 경우 발생
-> Unity에서는 이러한 한계를 극복하기 위해 컴포넌트 패턴을 사용

오버라이드

부모 클래스에서 작성한 메서드를 자식 클래스에서 재정의

virtual
virtual 키워드로 지정된 메서드는 가상 메서드가 된다
가상 메서드는 자식 클래스가 오버라이드 할 수 있도록 허용된 메서드이다

protected virtual void Awake()
{
}

override
자식 클래스는 override 키워드를 사용해 부모 클래스의 가상 메서드를 재정의 할 수 있다

protected override void Awake()
{
        base.Awake();       
}

base
base 키워드는 부모 클래스의 메서드를 지칭한다
base 키워드를 사용해 오버라이드 되기 전의 원형 메서드로 접근이 가능하다

오버로딩?

오버로딩은 같은 이름의 메서드가 매개변수의 개수나, 타입, 순서가 다르게 정의 되는 것

오버로딩과 오버라이딩의 활용

  • 오버로딩의 활용
    같은 이름의 메서드를 사용하여 다양한 기능을 제공하고자 할 때

  • 오버라이딩의 활용
    부모 클래스의 메서드를 사용 및 수정하고 싶을 때

컴포넌트 패턴

미리 만들어진 컴포넌트를 조립하여 완성된 오브젝트를 만드는 방식
컴포넌트 : 한 가지 대표 기능을 가진 부품
게임 오브젝트 : 컴포넌트를 붙일 수 있는 뼈대의 역할
컴포넌트 패턴 : 원하는 기능을 제공하는 컴포넌트를 찾아 게임 오브젝트에 붙여 실질적인 기능을 부여

컴포넌트 패턴의 장점

  1. 유연한 재사용이 가능
    원하는 기능을 가진 컴포넌트만 선택적으로 골라 사용 가능하다
  2. 컴포넌트의 독립성 덕분에 기능 추가와 삭제가 쉽다
  • 컴포넌트의 독립성
    컴포넌트 기능은 컴포넌트 내부에 완성되어 있기 때문에 다른 컴포넌트에 의존하지 않는다
profile
잊어버려도 다시 리마인드 할 수 있도록 공부한 것을 기록합니다

0개의 댓글