인터페이스란 ? 메서드의 목록만을 가지는 특별한 타입이다. 기본 형식은 클래스 선언문과 유사돼 키워드 interface로 선언하며, 클래스와 쉽게 구분하기 위해 대문자 I로 시작하여 사용하는 것이 정해진 규칙이다. 이름 뒤에 : 과 깁반 인터페이스를 밝힘으로써 다른 인터페이스로 부터 상속을 받을 수도 있다. |
인터페이스의 상속이란 ? 상속에는 구현상속과 인터페이스 상속이 존재 하고 있다. 구현상속 : 부모의 코드를 자식이 그대로 물려 받는 것이며, 클래스 간의 상속이 그 예이다. 인터페이스 상속 : 코드를 물려받지 않고 구현해야 할 메서드의 목록만 상속 받는 것을 의미 일반적으로 코드를 상속하는 구현 상속을 칭하는 경우가 많으며, 빈도도 구현 상속이 훨신더 높다 클래스 계층의 상단부에는 설계상의 목적으로 인터네이스 상속을 하는 것이 좋고 하단부에서는 실제 구현을 재사용하기 위해 구현상속을 사용한다, 논리적으로 튼튼한, 그러면서도 실용적인 클래스 계층을 구축하기 위해서는 두 종류 상속이 필요하며, C#은 인터페이이스 상속을 지원하기 위해 인터페이스라는 특수한 타입을 제공하고 있다. |
using System;
public class 인터페이스
{
public static void Main(string[] args)
{
Sonata sonata = new Sonata();
sonata.Run();
sonata.Left();
sonata.Right();
sonata.Back();
}
}
using System;
public interface IIso
{
void Run(); // 이름만 정의
}
public interface IKs { void Back(); }
public abstract class HD : IIso, IKs
{
public void Run() { Console.WriteLine("Run~~"); }
// void IKs.Back() { Console.WriteLine("Back~~"); }
public void Back() { Console.WriteLine("Back~~"); }
public abstract void Left(); // 추상메서드
}
public class Sonata : HD
{
public override void Left()
{
Console.WriteLine("Left Turn~~");
}
public void Right() { Console.WriteLine("Right Turn~~"); }
}
'.Net Project > .Net 3.5 Sp1' 카테고리의 다른 글
80장 봉인클래스(saled 최종클래스. 마지막클래스) (0) | 2009.08.15 |
---|---|
78장 추상클래스(Abstract) (0) | 2009.08.15 |
76장 메서드 오버라이딩(Tostring) (0) | 2009.08.15 |
75장 클래스의 부모접근 (0) | 2009.08.15 |
74장 상속관련 (0) | 2009.08.15 |