아디봉의.net
[C#] 인터페이스 정리 본문
인터페이스 란 클래스의 종류로써 클래스의 뻐대만 가지고 있는것이다. 클래스는 단일상속만 되므로 "다중상속"시 사용
인터페이스는 접근지정자가 존재한다(디폴트 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)
{
}
}
'C#' 카테고리의 다른 글
C# 트랜잭션이 이미 암시적 또는 명시적으로 커밋되거나 중단되었습니다. (0) | 2012.08.16 |
---|---|
C# com+ 프로젝트 생성과 사용 (0) | 2012.08.16 |
[C#] getter, setter 의 사용 (0) | 2012.07.25 |
[펌] visual 2010 도움되는기능 (0) | 2012.07.12 |
c# 제네릭(Generic) 완벽정리해보쟈! (0) | 2012.07.11 |