[C#] 다형성 abstract
페이지 정보
작성자 sbLAB 댓글 0건 조회 4,286회 작성일 18-07-25 17:27본문
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//다형성 예제
public abstract class MusicSever //추상클래스 MusicSever
{
public abstract void Play();//추상메서드 Play() <- 가상메서드
}
//MusicSever 상속
public class WinAmpServer : MusicSever
{
public override void Play()
{
Console.WriteLine("WinAmpServer.Play()");
}
}
//MusicSever 상속
public class MediaServer : MusicSever
{
public override void Play()
{
Console.WriteLine("MediaServer.Play()");
}
}
//MusicSever 상속
public class WebServer : MusicSever
{
public override void Play()
{
Console.WriteLine("WebServer.Play()");
}
}
class Program
{
public static void CallPlay(MusicSever ms)
{
ms.Play();
}
static void Main(string[] args)
{
//추상클래스의 레퍼런스를 이용-연결 레퍼런스가 가리키는 자식클래스의 Play() 메서드가 수행됨.
MusicSever ms = new WinAmpServer();
CallPlay(ms);
ms = new MediaServer();
CallPlay(ms);
ms = new WebServer();
ms.Play();
Console.ReadKey();
}
}
댓글목록
등록된 댓글이 없습니다.