[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){ }
}
}
'C# > 클래스와 객체지향' 카테고리의 다른 글
C# 클래스와 객체지향 - 14. 상속의 생성자 (0) | 2024.05.28 |
---|---|
C# 클래스와 객체지향 - 13. 클래스 자료형 변환 (1) | 2024.05.28 |
C# 클래스와 객체지향 - 11. 다형성 (0) | 2024.05.28 |
C# 클래스와 객체지향 - 10. 상속 (1) | 2024.05.28 |
C# 클래스와 객체지향 - 09. 값 복사와 참조 복사 (0) | 2024.05.28 |