반응형
인터페이스 다중 상속 시 메소드명이 동일한 경우에는 해당 메소드는 명시적 구현 즉 '인터페이스명.메소드명' 형식으로 해야 합니다.
명시적 구현인 경우 private만 가능하기 때문에 클래스의 인스턴스로는 메소드 호출을 할 수 없고 인터페이스 타입으로 호출해야 합니다.
using System;
using System.Collections.Generic;
using System.Linq;
interface SamsungPhone {
void TurnOn();
void TurnOff();
void Fold();
}
interface LGPhone {
void TurnOn();
void TurnOff();
void Roll();
}
class IntegratedPhone: SamsungPhone, LGPhone {
void SamsungPhone.TurnOn() { Console.WriteLine("Samsung Trun On"); }
void SamsungPhone.TurnOff() { Console.WriteLine("Samsung Trun Off"); }
void LGPhone.TurnOn() { Console.WriteLine("LG Trun On"); }
void LGPhone.TurnOff() { Console.WriteLine("LG Trun Off"); }
public void Fold() { Console.WriteLine("Folding"); }
public void Roll() { Console.WriteLine("Rolling"); }
}
class MainClass {
static void Main() {
SamsungPhone samsung = new IntegratedPhone();
samsung.TurnOn();
samsung.Fold();
LGPhone lg = new IntegratedPhone();
lg.TurnOn();
lg.Roll();
}
}
실행결과
반응형
'개발정보' 카테고리의 다른 글
[c#] (devexpress) Grid에서 최초 선택한 Row의 handle과 동일한 Row 찾기 (2) | 2022.06.15 |
---|---|
[c#] DevExpress DropDownButton 사용법 (0) | 2021.12.21 |
[Electron] Electron으로 Hello World 개발 (0) | 2021.05.01 |
[SQL서버] C#으로 OpenAPI 호출하는 CLR 개발 (0) | 2021.02.17 |
[CSS] FlexBox 속성 정리 (0) | 2020.12.10 |