상속 (inheritance)은 부모 클래스의 프로퍼티와 메서드를 
자식 클래스에서 사용 할수 있게 해주는것이다.
여러가지 클래스에 공통적으로 들어가는 부분이 있으면 활용하기 좋다.
c#에서의 상속은 : 키워드를 통해서 상속 받을 수 있다.

 

namespace inheritance
{
    // 부모 class

    public class Sample1
    {
        public int data1 { get; set; }
        public string data2 { get; set; }
        public bool data3 { get; set; }

        public void Hello()
        {
            Console.WriteLine("Hello ...");
        }

        public void Print(string _value)
        {
            Console.WriteLine($"Print .. {_value}");
        }
    }

    // Sample2 클래스는 Sample1을 상속 받는다.

    public class Sample2 : Sample1
    {
        public int data4 { get; set; }
        public string data5 { get; set; }
        public Sample1 data6 { get; set; }

        public void Copy()
        {
            Console.WriteLine("Copied ...");
        }
    }

    // Sample3 클래스는 Sample2를 상속 받는다.

    public class Sample3 : Sample2
    {
        public string data7 { get; set; }
        public decimal data8 { get; set; }

        public void Paste()
        {
            Console.WriteLine("Pasted");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var sample3 = new Sample3();
            var sample2 = new Sample2();

            // Sample3의 오브젝트에서 Sample1의 프로퍼티를 사용한다.
            sample3.data2 = "Sample1 prop";

            // 마찬가지로 Sample2의 메서드도 사용가능
            sample3.Copy();

            // 자식의 프로퍼티는 사용불가능
            sample2.data7 = "error";

            // 부모는 사용가능
            sample2.Print("success");
        }
    }
}

 

'C# > Basic' 카테고리의 다른 글

File, FileInfo  (0) 2021.03.08
제네릭 (Generic) 1  (0) 2021.02.28
접근 제한자 (Access Modifier)  (0) 2021.02.14
this  (0) 2021.02.13
getters & setters  (0) 2021.02.07