Blog Content

    티스토리 뷰

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

    반응형
    추상클래스와 같이 다른 클래스에게 멤버명을 미리 강제로 사용토록 할 때 사용

    - 인터페이스는 멤버명만 갖는 반면, 추상클래스는 다른 멤버도 가질 수 있다.
    - 인터페이스는 자동차로 따지면, 전세계표준(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
    다운로드

    반응형

    Comments