반응형
추상클래스와 같이 다른 클래스에게 멤버명을 미리 강제로 사용토록 할 때 사용 - 인터페이스는 멤버명만 갖는 반면, 추상클래스는 다른 멤버도 가질 수 있다. - 인터페이스는 자동차로 따지면, 전세계표준(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("우회전"); } } |
결과화면
반응형
'C#' 카테고리의 다른 글
63.C# - 명령줄인수 ( Commands Line Prompt ) (0) | 2009.08.17 |
---|---|
62.C# - 봉인클래스 (sealed Class) (0) | 2009.08.15 |
60.C# - 추상클래스 (Abstract Class) (0) | 2009.08.14 |
59.C# - ToString메서드오버라이드 ( ToString Method Override ) (0) | 2009.08.14 |
58.C# - 부모의멤버접근 (0) | 2009.08.14 |
Comments