C#

61.C# - 인터페이스 (Interface)

Godffs 2009. 8. 14. 23:40
반응형
추상클래스와 같이 다른 클래스에게 멤버명을 미리 강제로 사용토록 할 때 사용

- 인터페이스는 멤버명만 갖는 반면, 추상클래스는 다른 멤버도 가질 수 있다.
- 인터페이스는 자동차로 따지면, 전세계표준(ISO), 국내표준㉿ 등의 의미 가짐.
- C#은 다중상속이 불가능하지만(C++가능), 인터페이스 다중 상속은 가능하다.
- 자동차 규격, 예를 들어 배터리 충전(점프선)

인터페이스란 클래스의 한 종류로 인터페이스로 부터 상속 받은 클래스는
인터페이스에서 정의한 메서드를 사용해야 합니다.

인터페이스에는 필드가 포함되지 않습니다.


Program.cs
using System;
public class 인터페이스
{
    public static void Main()
    {
        Sonata sonata = new Sonata();
        sonata.Run();
        sonata.Left();
        sonata.Right();
        sonata.Back();
    }
}

Car.cs
using System; //Interface : ISO 규격 : 전세계 표준
public interface IIso // I자로 시작하면 무조껀 인터페이스
{
    void Run(); //이름만 정의
}

public interface IKs  //Interface : KS 규격 : 한국표준
{
    void Back();
}

//Abstract : 현대자동차 규격
//전세계표준과 한국 표준이 두개 중 이름이 같다면 명시적으로
public abstract class Hyundai : IIso, IKs // 다중상속 IIso : 구현,
{                                                                         IKs :명시적 구현

    public void Run() {
        Console.WriteLine("전진");
    }

    public void Back() {        //명시적임으로 생략
        Console.WriteLine("후진");
    }

    public abstract void Left(); //추상메서드 현대클레스를 상속 받는
}                                                  모든 메소드들은 left를 사용해야한다.


//일반 Class : Sonata
public class Sonata : Hyundai
{
    public override void Left() {
        Console.WriteLine("좌회전");       
    }

    public void Right() {
        Console.WriteLine("우회전");
    }
}

결과화면


61.Interface.zip
다운로드

반응형