C#/클래스와 객체지향

C# 클래스와 객체지향 - 12. 클래스(키워드)

tita 2024. 5. 28. 21:32

[base 키워드]

 

자식 클래스에서 부모 클래스에서 정의한 멤버를 사용하고 싶다면, 다음과 같이 사용하면 됩니다.

class Animal
{
    public void Eat() { Console.WriteLine("먹습니다."); }
    public void Sleep() { Console.WriteLine("잠을 잡니다."); }
}

class Dog : Animal
{
    public void Test()
    {
        // 부모에게서 상속받은 Eat() 메서드와 Sleep() 메서드를 호출합니다.
        Eat();
        Sleep();
    }
}

 

이름이 겹치는 등의 특수한 이유가 밸생해서, 부모의 메서드에 접근할 수 없을 때는 base 키워드를 사용하면 됩니다.

this가 자신을 나타내는 키워드라면 base는 부모를 나타내는 키워드입니다.

 

 

 

[is 키워드]

 

자식 클래스에 있는 메서드를 호출하려면 자식 클래스로 자료형을 변환해야 합니다.

item이 Dog 클래스인지 Cat 클래스인지 구분하는 방법은 무엇일까요?

 

C#은 특정한 클래스가 어떤 클래스인지 확인하기 위해 is 키워드를 제공합니다.

객체 is 클래스

 

이 객체가 특정한 클래스라면 true를 반환합니다.

다음과 같은 코드를 사용하면 됩니다.

static void Main(string[] args)
{
    List<animal> Animals = new List<Animal>() { /* ... */ }
    
    foreach(var item in Animals)
    {
        item.Eat();
        item.Sleep();
        
        if(item is Dog){ }
        if(item is Cat){ }
    }
}