45.9 인터페이스를 사용하여 멤버 이름 강제로 적용하기
인터페이스를 사용하면 특정 클래스들에 특정 멤버를 강제로 구현하도록 명시할 수 있습니다. 자동차 클래스 관계에서 인터페이스가 바로 표준 설계라고 보면 됩니다. 표준을 무시한 채 설계하다 보면 자동차 기능이 들쑥날쑥하게 정의될 것입니다. 그러나 표준을 미리 정의하고 이를 지키도록(구현하도록) 인터페이스를 설계한 후 인터페이스대로 클래스를 구현하도록 지시하면 공통되고 표준화된 내용을 함께 구현할 수 있습니다. 그러기에 인터페이스를 사용한 상속 기능은 프로그램이 복잡해질수록 그 가치가 높아질 것입니다.
인터페이스를 사용하여 멤버 이름 강제로 적용: InterfaceFriends.cs
using System; namespace InterfaceFriends { //① 인터페이스: 설계, Run()이라는 단어 설계(명시) public interface IStandard { void Run(); } //② 추상 클래스: 설계 + 구현 public abstract class KS { public abstract void Back(); public void Left() => Console.WriteLine("좌회전"); } //③ 분할 클래스 public partial class MyCar : KS { public override void Back() => Console.WriteLine("후진"); } public partial class MyCar : KS { public void Right() => Console.WriteLine("우회전"); } //④ 봉인(최종) 클래스 public sealed class Car : MyCar, IStandard { public void Run() => Console.WriteLine("전진"); } //⑤ 다음 코드는 에러(봉인 클래스는 상속받을 수 없음) //public class SelfCar : Car { } class InterfaceFriends { static void Main() { Car cla = new Car(); cla.Run(); cla.Left(); cla.Right(); cla.Back(); } } }
실행 결과
전진 좌회전 우회전 후진
인터페이스, 추상 클래스, 분할 클래스, 봉인 클래스까지 상속에 사용되는 주요 기능들을 적용해 보았습니다.
인터페이스는 프로그램의 표준 규약을 만드는 데 사용됩니다. 이러한 인터페이스는 응용 프로그램을 제작할 때 거의 필수가 되는 개념이기에, 이 강의 내용을 기반으로 앞으로도 계속해서 사용할 것입니다.