미처 완성되지 못한 알고리즘
다중 인터페이스 상속 시 중복 메소드 처리 방법. 본문
interface CarControl
{
void Gear(int i);
void Off();
}
interface AudioControl
{
void Volume(int i);
void Off();
}
public class Car : CarControl, AudioControl
{
public void Gear(int i )
{
Console.WriteLine("현재 기어는 {0}입니다.", i);
}
public void Volume(int i)
{
Console.WriteLine("현재 볼륨은 {0}입니다.", i);
}
void CarControl.Off()
{
Console.WriteLine("자동차 시동을 껐습니다.");
}
void AudioControl.Off()
{
Console.WriteLine("오디오 전원을 끕니다.");
}
}
class DerivedClass
{
static void Main(string[] args)
{
Car mycar = new Car();
mycar.Gear(3);
mycar.Volume(5);
//mycar.Off(); //사용불가
CarControl carCon = mycar; //우회적으로 호출하는 문장.
AudioControl audioCon = mycar;
carCon.Off(); //호출 성공!! mycar에서 직접적으로 호출이 불가능하다.
audioCon.Off();
}//Main
}//class
-------------------------------------------------------------------------------------------------------------------------
앞에 한정자를 붙이지 못하는 점에 주목하자.
사용할 때, 클래스 변수에서 바로 호출을 못하므로, 해당 인터페이스의 변수를 사용해 우회적으로 호출한다.
'IT > c#' 카테고리의 다른 글
람다식 예 (0) | 2017.09.25 |
---|---|
인터페이스 예제 (0) | 2017.09.20 |
상속 시 생성자 호출 순서 (0) | 2017.09.18 |
event내부 구조 및 예제 (0) | 2017.09.12 |
반환형이 object형식일 때 (0) | 2017.09.11 |