반응형
- 개체 지향 프로그래밍의 장점 중의 하나는 이미 만들어져 있는 클래스를 재사용 하는 것이다. 이 때 재사용의 대한 핵심 개념이 바로 상속이다. - 부모의 재산을 자식에게 상속하듯이 부모클래스(기본클래스)의 모든 멤버를 자식클래스(파생클래스)에게 재사용토록 허가하는 기능을 의미한다. -여러 클래스들 간의 관계를 설정함에 있어서 수평관계가 아닌 부모와 자식간의 관계처럼 계층적인 관계를 표현하고자 할 때 사용하는 개념을 상속이라 한다. |
부모와 자식관계를 가진 클래스 입니다.
부모클래스 상속받아 자식클래스가 상속받은 속성을 사용하는 예제입니다.
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);
}
결과화면
반응형
'C#' 카테고리의 다른 글
58.C# - 부모의멤버접근 (0) | 2009.08.14 |
---|---|
57.C# - 클래스상속 -2- ( ClassInheritance ) (0) | 2009.08.14 |
55.C# - namespace ( 네임스페이스 ) (0) | 2009.08.14 |
54.C# - 클래스 복습 (0) | 2009.08.14 |
53.C# - 무명메서드(익명메서드 : Anonymous Method ) (0) | 2009.08.13 |
Comments