63. 인터페이스(Interface)
==> 인터페이스.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(); // 이름만 정의(멤버가 없다.)
}
// Interface : KS 규격 : 한국표준
public interface IKs
{
void Back();
}
// Abstract : 현대자동차 규격
public abstract class Hyundai : IIso, IKs // Hyundai는 IIso, IKs의 상속을 받는다.
{
public void Run() { Console.WriteLine("전진"); }
public void Back() { Console.WriteLine("후진"); }
public abstract void Left(); // 추상메서드
}
// Class : Sonata
public class Sonata : Hyundai // Sonata는 Hyundai의 상속을 받는다.
{
public override void Left()
{
Console.WriteLine("좌회전");
}
public void Right()
{
Console.WriteLine("우회전");
}
}
/*
- 추상클래스는 추상메서드 외에도 일반메서드들도 와도 된다.
- 인터페이스와 추상클래스는 멤버내용( {~} )이 없다. 이름만 있다.
*/