작성날짜 : 2011-03-25 |
참고 : http://msdn.microsoft.com/ko-kr/library/ms173152.aspx
선문비트 프로젝트 : http://cafe.daum.net/smbitpro?t__nil_cafemy=item
다형성
캡슐화, 상속과 더불어 OOP의 특징으로 다형성이 있습니다.
다형성은 특정 형식의 변수가 관리할 수 있는 개체 인스턴스의 형식이 다양할 수 있다는 것과
변수를 통한 메서드의 접근이 관리되는 개체 인스턴스에 정의된 메서드로 호출될 수 있다는 특징을 말합니다.
기본 클래스 변수로는 파생 클래스의 개체를 관리를 할 수가 있지요.
또한, 개체의 가상 메서드를 호출하면 CLR은 개체의 런타임 형식에 정의된 가상 메서드의 재정의를 호출 합니다.
이러한 특징은 일관된 방식으로 개체들을 관리할 수 있게 해 줍니다.
가상 멤버에 대해 살펴보면
기본 클래스의 가상 메서드를 재정의 하거나 혹은 그대로 상속받을 수도 있고 또한, new 키워드를 사용하여 기본 클래스의 멤버를 숨길 수 있습니다. 그리고, 파생 클래스에서 더 이상 재정의를 못하게 sealed로 가상 상속을 중지할 수도 있습니다.
마지막으로 파생 클래스에서 기본 클래스의 메서드를 호출을 할 때에는 base를 이용하면 됩니다.
Ad Hoc : 아 이거 다형성 이구나!!
abstract한 메서드가 없어도 abstract 클래스를 만들 순 있다.
Man man = new Stu(); man.Work(); man.HappyNewYear();
Stu stu = new Stu(); stu.Work(); stu.HappyNewYear();
int capacity = 0; Console.WriteLine("최대 관리 수를 입력 : "); string input = Console.ReadLine(); capacity = int.Parse(input);
// C, C++에서 사용한 배열보다 vector에 가깝다. int[] arr = new int[capacity];
Console.WriteLine("배열의 크기 {0}", arr.Length); |
결과 화면
'Programming > .NET' 카테고리의 다른 글
[.NET] Delegate (대리자) (0) | 2015.05.19 |
---|---|
[.NET] is 와 as (0) | 2015.05.19 |
[.NET] String (0) | 2015.05.19 |
[.NET] Array (배열) (0) | 2015.05.19 |
[.NET] Object (객체) (0) | 2015.05.19 |