블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Notice

2015. 5. 19. 11:11 Programming/.NET

 

작성날짜    : 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
posted by Kanais