아디봉의.net

[C#] 인터페이스 정리 본문

C#

[C#] 인터페이스 정리

아디봉 2012. 7. 25. 17:36

인터페이스 란 클래스의 종류로써 클래스의 뻐대만 가지고 있는것이다.  클래스는 단일상속만 되므로 "다중상속"시 사용

인터페이스는 접근지정자가 존재한다(디폴트 public).

인터페이스는 구현을 목적으로 합니다, 즉 완전한 클래스가 되기위해선 상속받아서 실제사용하는 곳에서 구현을 해야지 객체생성시 에러가 발생하지 않습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    interface IControl
    {
        void paint();
    }
    interface ISurface
    {
        void paint();
    }

    class Program
    {
        static void Main(string[] args)
        {
            interface1 inter = new interface1();
            //inter.paint(); compiler error

            IControl c = (IControl)inter;
            c.paint();
            ISurface d = (ISurface)inter;
            d.paint();
        }
    }

    class interface1: IControl, ISurface
    {
         void IControl.paint() //method
        {
            Console.WriteLine("IControl.paint");
        }

         void ISurface.paint() //method
        {
            Console.WriteLine("ISurface.paint");
        }
     
    }
}

-------------------------------

 

  interface qw {
          void SayA();
          void SayC();
          void SayD();
          void SayE();
          void SayF();
      };
        interface qe {
            void SayB(string a);
        };
          

    abstract class AA
    {
        //private ArrayList al = new ArrayList();
        //public string ab { get; set;}
     
        public abstract void aaa();
        public abstract void aab(string a);
       
    }

    class ABC : AA,  qw, qe
    {
       
        public override void aaa()
        {
            throw new NotImplementedException();
        }
        public override void aab(string a)
        {
            throw new NotImplementedException();
        }
        public void SayA()
        {

        }
        public void SayB(string a)
        {

        }

    }
   
    class ABD : AA , qw, qe //다중상속

    {
        public override void aaa()
        {
            throw new NotImplementedException();
        }
        public override void aab(string a)
        {
            throw new NotImplementedException();
        }
        public void SayA()
        {

        }
        public void SayB(string a)
        {

        }
    }

    class Program
    {
        static void Main(string[] args)
        {
          
        }
    }