상속이란?
- 상속은 기존 클래스를 확장하거나 재사용하여 새로운 클래스를 생성하는것입니다.
- 자식클래스는 부모클래스의 필드, 메서드, 프로퍼티를 상속받아 사용할 수 있습니다.
- 상속을 통해 부모 클래스의 기능을 확장하거나 수정하여 새로운 클래스를 정의할 수 있습니다.
상속의 장점
- 코드의 재사용성: 상속을 통해 기존 클래스의 코드를 재사용할수 있습니다.
- 계층구조의 표현: 클래스간의 계층 구조를 표현하여 코드의 구조를 명확하게 표현할 수 있습니다.
- 유지보수의 향상: 상속을 통해 기존 클래스의 수정이 필요한 경우, 해당 클래스만 수정하면 끝입니다.
- 부모 클래스의 멤버에 접근: 자식클래스는 상속받은 부모클래스의 멤버에 접근할수 있고 그 기능을 재사용할 수 있습니다.
- 메서드의 재정의: 자식클래스는 부모클래스의 메서드를 재정의하여 자신에게 맞게 수정할 수 있습니다.
- 상속의 깊이: 클래스는 다수의 계층적인 상속 구조를 가질 수 있습니다. 부모 클래스가 다른 클래스의 자식으로 들어갈 수 있다는것을 의미합니다.
접근제한자와 상속
- 상속 관계에서 접근제한자는 중요합니다. 부모클래스의 접근제한자에 따라 자식클래스가 해당 멤버에 접근할수있는지 여부를 결정합니다.
// 부모 클래스
public class Animal
{
public string Name { get; set; }
public int Age { get; set; }
public void Eat()
{
Console.WriteLine("Animal is eating.");
}
public void Sleep()
{
Console.WriteLine("Animal is sleeping.");
}
}
// 자식 클래스
public class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Dog is bark.");
}
}
public class Cat : Animal
{
public void Sleep()
{
Console.WriteLine("Cat is sleeping.");
}
public void Meow()
{
Console.WriteLine("Cat is meow.");
}
}
// 사용 예시
Dog dog = new Dog();
dog.Name = "Bobby";
dog.Age = 3;
dog.Eat(); // Animal is eating.
dog.Sleep(); // Animal is sleeping.
dog.Bark(); // Dog is barking
Cat cat = new Cat();
cat.Name = "KKami";
cat.Age = 10;
cat.Eat();
cat.Sleep();
cat.Meow();
Animal이라는 부모클래스에 Dog와 Cat이라는 자식클래스가 들어가 있는 코드의 사용 예시입니다.