실습) 다음 시나리오에 맞게 프로그램을 작성하시오. * 목적: 상속과 다형성 기초 밴드를 생성 후에 피아니스트와 드러머를 멤버로 추가한다. |
*2019년도 공주대에서 |
소스 코드 예) Musician.cs |
using System;
namespace 상속과_다형성_실습1 { class Musician { string name; protected string Name { get { return name; } } public Musician(string name) { this.name = name; } public void Play() { Console.WriteLine("{0} 연주하다.", name); } public override string ToString() { return name; } } }
|
Pianist.cs |
using System;
namespace 상속과_다형성_실습1 { class Pianist:Musician { public Pianist(string name) : base(name) { } public void Tuning() { Console.WriteLine("{0} 조율하다.", Name); } } }
|
Drummer.cs |
using System;
namespace 상속과_다형성_실습1 { class Drummer:Musician { public Drummer(string name):base(name) { } public void Polling() { Console.WriteLine("{0} 휘리릭~", Name); } } }
|
Band.cs
using System;
namespace 상속과_다형성_실습1
{
class Band
{
Musician[] members = new Musician[2];
int mcnt;
public void AddMember(Musician member)
{
if(mcnt <members.Length)
{
members[mcnt] = member;
mcnt++;
}
}
public void StartConcert()
{
foreach(Musician m in members)
{
m.Play();
Drummer drummer = m as Drummer;
if(drummer !=null)
{
drummer.Polling();
}
}
}
public void Ready()
{
foreach (Musician m in members)
{
Pianist pianist = m as Pianist;
if(pianist != null)
{
pianist.Tuning();
}
}
}
}
}
Program.cs
using System;
namespace 상속과_다형성_실습1
{
class Program
{
static void Main(string[] args)
{
Band band = new Band();
band.AddMember(new Pianist("송정수"));
band.AddMember(new Drummer("장언휴"));
band.Ready();
band.StartConcert();
}
}
}
'언어 자료구조 알고리즘 > 프로그래밍 실습' 카테고리의 다른 글
[C#] 컬렉션(Dictionary) 실습 - 도서 관리 프로그램 (0) | 2019.08.10 |
---|---|
[C#] 상속과 다형성, 인터페이스 실습 - 도형 (0) | 2019.08.10 |
[C#] 컬렉션 실습 - IList 인터페이스 구현 약속한 컬렉션 (0) | 2019.08.09 |
[C#] 상속과 다형성 실습 - 학생, 학사학생, 마법학생, 운동학생 (0) | 2019.08.09 |
[C#] 상속과 다형성 - 상품, 할인상품 (0) | 2019.08.08 |
[C#] 캡슐화 - 학생 클래스 정의, 인덱서 포함 (0) | 2019.08.08 |
[C#] 캡슐화 실습 - 학생 클래스 (0) | 2019.08.08 |
[C#] 캡슐화 실습 - 복소수 정의(멤버 필드와 멤버 속성) (0) | 2019.08.08 |
[C#] 제어문 - 퀴즈 abc + cca = 1ab2 (0) | 2019.08.08 |
[C#] 제어문 - 정사각형 출력 (0) | 2019.08.07 |