[C# 문법] C# 상속

안녕하세요.

 

오늘은 C#의 기본 문법 중의 하나인 상속(inheritance) 에 대해서 공부해 보려고 합니다.

 

일명, 객체지향 프로그래밍의 꽃? 은 상속이라는 말도 있는데요.

 

그만큼 상속의 개념은 매우 중요한 개념으로써, 꼭 공부하고 넘어가야 하는 개념이라고 생각합니다.

 

그럼 상속이 무엇이냐?

 

상속이란?

 

-     객체지향 프로그래밍에서 상속이란, 부모 클래스와 자식 클래스가 있으며부모 클래스는 자식 클래스의 Base 클래스가 되어, 기반 클래스라고 부르기도 하고, 자식 클래스는 부모 클래스로부터 파생 되었다고 하여 파생 클래스라고 부르기도 합니다.

 

흔히, 상속의 개념은 위와 같습니다.

 

그럼 실제로 C# 문법에서 상속을 어떻게 표현하는지 예제 코드를 통해서 보도록 하겠습니다.

 

예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
 
namespace InheritanceTest
{
    //부모 클래스
    class Animal
    {
        public string name; //이름
 
        //Animal 클래스 생성자
        public Animal()
        {
            Console.WriteLine($"Animal 생성자");
        }
    }
 
    //자식 클래스
    class Dog : Animal
    {
        public Dog()
        {
            Console.WriteLine($"Dog 생성자");
        }
 
        public void printDog(string name)
        {
            base.name = name;
            Console.WriteLine($"Dog의 이름은 {name} 입니다.");
        }
    }
 
    //자식 클래스
    class Cat : Animal
    {
        public Cat()
        {
            Console.WriteLine($"Cat 생성자");
        }
 
        public void printCat(string name)
        {
            base.name = name;
            Console.WriteLine($"Cat의 이름은 {name} 입니다.");
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Dog dog = new Dog();
            dog.printDog("뽀삐");
            Console.WriteLine("--------------");
 
            Cat cat = new Cat();
            cat.printCat("여름이");
        }
    }
}
 
cs

 

실행 결과

 

위와 같이 부모 클래스인 Animal 클래스를 Dog 클래스와 Cat 클래스에 모두 클론(:) 표시를 이용하여 상속을 시켜 주었고, 실행을 시켜 보니까 Animal의 생성자가 먼저 출력이 되고, 그 다음으로 파생클래스 즉 Dog 클래스, Cat 클래스의 생성자가 출력이 되면서 마지막으로 각각의 Name이 출력되는 것을 보실 수 있습니다.

 

참고로, 소멸할 때는 역순으로 소멸된다는 점 참고해 주시면 좋겠습니다.

 

감사합니다.^^

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY