Deff_Dev

[Unity/C#] 정보 은닉, 캡슐화, 상속 (base 연산자) 본문

Unity(유니티)/유니티 공부

[Unity/C#] 정보 은닉, 캡슐화, 상속 (base 연산자)

Deff_a 2024. 3. 11. 01:19

해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다.

 

정보은닉

  • 클래스 외부에서 클래스의 멤버 변수에 직접 접근하지 못하도록 멤버 변수를 private로 선언하는 것

캡슐화

  • 정보은닉으로 인해 클래스 외부에서 접근 불가능한 멤버 변수의 값을 조작할 수 있도록 생성하는 멤버 함수

상속

  • 부모 클래스가 자식 클래스에게 public, protected로 선언된 변수와 메소드를 제공하는 것

상속을 하는 이유

  • 여러 클래스에 동일하게 작성되는 내용은 부모 클래스로 작성한 후 자식 클래스가 상속받아 사용하면 코드 간결화에 도움이 된다.
  • 형식을 통일해 하나의 그룹 (배열, 리스트 등)으로 관리할 수 있도록 한다.

 

base

  • 부모 클래스의 변수나 메소드에 접근할 때 사용하는 키워드

 

 

 

상속 관계에 있는 클래스에서 파생 클래스의 생성자가 호출될 때, 기본적으로 부모 클래스의 기본 생성자가 먼저 호출된다.

 

부모 클래스의 생성자에 매개변수가 있는 경우에는 자식 클래스에서 부모 클래스의 생성자 매개 변수를 전달해줘야한다.

public class Animal
{
    protected string name;
    public Animal(string name)
    {
        this.name = name;
    }
}
public class Tiger : Animal
{
    // 매개 변수 전달
    public Tiger() : base("백호")
    {
        Debug.Log($"{base.name}");
    }
}

public class TestManager : MonoBehaviour
{
    private void Start()
    {
        Tiger tiger = new Tiger();
    }
}

 

public class Animal
{
    protected string name;
    public Animal(string name)
    {
        this.name = name;
    }
}
public class Tiger : Animal
{
    // 매개 변수 전달
    public Tiger(string name) : base(name)
    {
        Debug.Log($"{base.name}");
    }
}

public class TestManager : MonoBehaviour
{
    private void Start()
    {
        Tiger tiger = new Tiger("백호");
    }
}

 

base 키워드를 이용하여 부모 클래스의 생성자 매개변수를 전달한다.