Blog Content

    티스토리 뷰

    56.C# - 클래스상속 ( ClassInheritance )

    반응형
    - 개체 지향 프로그래밍의 장점 중의 하나는 이미 만들어져 있는 클래스를
                 재사용 하는 것이다. 이 때 재사용의 대한 핵심 개념이 바로 상속이다.
    - 부모의 재산을 자식에게 상속하듯이 부모클래스(기본클래스)의 모든 멤버를
                 자식클래스(파생클래스)에게 재사용토록 허가하는 기능을 의미한다.
    -여러 클래스들 간의 관계를 설정함에 있어서 수평관계가 아닌 부모와 자식간의
        관계처럼 계층적인 관계를 표현하고자 할 때 사용하는 개념을 상속이라 한다.


    부모와 자식관계를 가진 클래스 입니다.

    부모클래스 상속받아 자식클래스가 상속받은 속성을 사용하는 예제입니다.


    Program.cs
    using System;
    public class 클래스상속
    {
        public static void Main(string[] args)
        {
            c.Hi2(); //자체 자식
            Console.WriteLine(c.ToString());

            Child c = new Child();
            c.Hi();// 부모로 부터 상속
            Console.WriteLine(c.ToString()); //Object
        }
    }

    Child.cs
    using System;
    public class Parent : Object
    {
        protected string msg = "Hi";
        private string msg = "HI";

        protected string Message
        {
            get { return msg; }
            set { msg = value; }
        }

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

    public class Child : Parent //부모가 자식에게 물려 받는다.

        public void Hi2()
        {
            Console.WriteLine("- 자식 -");
            Console.WriteLine(Message);
        }
    }

    코드설명

    부모 Parent에 선언된 Filed가 private로 되어 있어 맴버가 노출되지 않습니다.
    public로 하게 되면 노출이 됩니다. 이 경우 자식클래스로 따라갑니다.
    (중첩시 자신과 가까운 곳으로 갑니다.)
    자식클래스에만 사용할 수 있게 하려면 부모 Parent에 선언된 msg Fileld를 private에서 protected로 변경합니다.
    부모에게 물려 받은 함수 명을 재 정의해서 사용 할 때는 new 키워드를 써줍니다.

    예)   public new void Hi()

           {
               Console.WriteLine("자식 : " + Message);
           }


    결과화면


    56.ClassInheritance.zip
    다운로드

    반응형

    Comments