C#

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

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


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

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


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
다운로드

반응형