본문 바로가기
프로그래밍/C#

[C#] 상속

by 아임코딩 2023. 5. 5.
728x90
반응형

안녕하세요 아임코딩입니다.

 

이번에는 C#에서 지원하는 상속에 대해서 알아보겠습니다.

 

유튜브 링크

https://youtu.be/YHrGqueKFMk

 

상속이란?

상속은 객체지향 프로그래밍 언어에서 중요한 개념 중 하나로, 기존의 클래스를 재사용하여 새로운 클래스를 만들 수 있는 기능입니다.

쉽게 말해서 어떤 클래스를 그대로 복사해서 다른 클래스에 붙여넣는다고 생각하면 쉽습니다.

상속을 하면 부모 클래스의 데이터와 메서드를 그대로 자식 클래스에서 사용할 수 있습니다.

 

C#에서의 상속

C#에서 상속은 클래스를 선언할 때 : 기호를 이용해서 상속을 할 수 있습니다.

[접근제한자] class [자식 클래스] : [부모 클래스]

이런 식으로 상속을 받습니다.

 

부모 클래스

상속할 부모 클래스를 먼저 만들어보겠습니다.

        public class Person
        {
            private string name;

            public string getName() //name 값을 반환하는 메서드
            {
                return name;
            }
            public void setName(string name)  //name 값을 설정하는 메서드
            {
                this.name = name;
            }
            public void printName()
            {
                Console.WriteLine("사람의 이름은 : " + name);
            }
        }

부모 클래스의 이름은 Person 이고

데이터는 string name을 가지고 있고

메서드는

getName()

setName()

printName()

을 가지고 있습니다.

 

자식 클래스


        public class Student : Person
        {
            private int stuId;

            public void setStuId(int stuId)
            {
                this.stuId = stuId;
            }
            public int getStuId()
            {
                return stuId;
            }

            public void printStuId()
            { 
                Console.WriteLine("학번 : " + stuId);
            }
        }

Person 클래스를 정의하고 

Student 클래스에서 Person 클래스를 상속받는 C# 코드입니다.

상속을 하면 Student 클래스에서 Person 클래스가 가진 데이터와 메서드를 그대로 가집니다.

상속받은 자식 클래스는 부모 클래스에서 상속받은 것 말고도 자신만이 가지는 데이터와 메서드를 가질 수 있습니다.

 

Student 클래스의 객체를 생성하고 부모 클래스에서 구현한 메서드와 자식 클래스에서 구현한 메서드 모두에 접근해보겠습니다.

 

프로그램 전체 코드

using System;
namespace Tistory
{
    internal class Program
    {
        public class Person
        {
            private string name;

            public string getName() //name 값을 반환하는 메서드
            {
                return name;
            }
            public void setName(string name)  //name 값을 설정하는 메서드
            {
                this.name = name;
            }
            public void printName()
            {
                Console.WriteLine("사람의 이름은 : " + name);
            }
        }

        public class Student : Person
        {
            private int stuId;

            public void setStuId(int stuId)
            {
                this.stuId = stuId;
            }
            public int getStuId()
            {
                return stuId;
            }

            public void printStuId()
            { 
                Console.WriteLine("학번 : " + stuId);
            }
        }

        static void Main(string[] args)
        {
            Student jerry = new Student();

            jerry.setName("jerry");     //부모 클래스의 메서드 호출
            jerry.printName();          //부모 클래스의 메서드 호출

            jerry.setStuId(17298401);   //자식 클래스의 메서드 호출
            jerry.printStuId();         //자식 클래서의 메서드 호출
        }
    }
}

 

Main 함수에서는 Student 클래스의 객체 jerry를 만듭니다.

 

jerry 객체를 이용하여 부모에서 상속받은 메서드인

setName("jerry");

printName()

을 호출합니다.

 

Student 클래스가 가진 메서드인

setStuId(17298401);

printStuId(); 

를 호출합니다.

 

결과는 화면에 의도한 대로 잘 출력이 되는 것을 확인할 수 있습니다.

 

이상으로 C#에서 구현할 수 있는 상속의 가장 기본적인 형태를 알아봤습니다. 

 

 

 

728x90
반응형