RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
.Net  2010.12.09 22:18
Abstract Class
- abstract mothod를 가지는 클래스는 반드시 abstract class
- 멤버필드를 가질 수 있다.
- 클래스의 인스턴스를 직접 생성하지 못한다.

▶ Abstract Method
- Abstract Method는 Abstract Class에서만 허용됩니다.
- 암시적으로 가상함수이다.
- 상속받는 클래스에서 반드시 재정의(override를 이용)해서 사용되어야 한다.

    // Abstract Class A
    abstract class A
    {
        // Abstract Method 선언
        public abstract void Print();

        // 멤버필드 가능.
        int mCount;

        // 멤버함수 가능.
        public int Add(int value)
        {
            mCount += value;

            return mCount;
        }
    }

    class B : A
    {
        // Abstract Method를 상속받아 실제 구현
        public override void Print()
        {
            Console.WriteLine("B:Print()!");
        }
    }


    class Program
    {
        static void Main()
        {
            // Error - Cannot create an instance of the abstract class or interface 'CSharpTest.A'
            // A a = new A();

            B b = new B();
            b.Add(100);
            b.Print();
        }
    }



▶ Interface Class
- 기본 public
- Methods, Properties, Indexers, Events의 뼈대(signatures)만 포함가능하다.
- 클래스의 인스턴스를 직접 생성하지 못한다.
- 다중 상속 가능.

    interface ITest
    {
        void SetQuestion(string s);         // Method

        int No { get; set; }               // Property
    }

    public class MathTest : ITest
    {
        int mQuestionNo;
        string mQuestion;

        // Method 구현
        public void SetQuestion(string s)
        {
            mQuestion = s;
        }

        // Interface에서 get,set 모두 선언했기 때문에, 모두 구현해야 한다.
        public int No
        {
            get {   return mQuestionNo; }

            set {   mQuestionNo = value; }
        }
    }

    class Program
    {
        static void Main()
        {
            MathTest test = new MathTest();
            test.No = 1;
            test.SetQuestion("are you mad?");            
        }
    }



참고 링크
저작자 표시 비영리
신고

'.Net' 카테고리의 다른 글

델리게이트(Delegate)  (0) 2010.12.11
C++/CLI  (0) 2010.12.10
Abstract 와 Interface  (0) 2010.12.09
Boxing 과 Unboxing  (0) 2010.12.09
Advanced C# - 한빛미디어  (1) 2010.12.09
프로갱호:어제의 나보다 더 나아질수 있는 방법을 찾아서~!
어제의 나보다 더 나아질수 있는 방법을 찾아서~!
분류 전체보기 (61)
My Life (13)
Information for Dev (2)
Conference (1)
C Programming (0)
C++ Programming (2)
.Net (14)
Unity3D (14)
Script (1)
Architecture (1)
Design Pattern (0)
Game Technolog (2)
Visual Studio (0)
Network (1)
Financial Technology (0)
All Link (10)
«   2017/08   »
    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 31    
  1. coach usa  2013
    h..
  2. cheap nike shoes  2013
    h..
  3. cheap oakley sunglasses  2013
    ..
  4. prada  2013
    ..
  5. supra skytop  2013
    ..

티스토리 툴바