C #이 이런 식으로 설계된 이유는 무엇입니까?
내가 이해하는 바와 같이, 인터페이스는 행동을 설명하고 특정 행동이 구현되는 인터페이스를 구현하는 클래스에 대한 계약 의무를 설명하는 목적을 제공합니다.
클래스가 공유 메소드에서 해당 동작을 구현하려면 왜 안됩니까?
다음은 내가 염두에 둔 예입니다.
// These items will be displayed in a list on the screen.
public interface IListItem {
string ScreenName();
...
}
public class Animal: IListItem {
// All animals will be called "Animal".
public static string ScreenName() {
return "Animal";
}
....
}
public class Person: IListItem {
private string name;
// All persons will be called by their individual names.
public string ScreenName() {
return name;
}
....
}
IListItem.ScreenName() => ScreenName()
(C # 7 구문 사용) 정적 메소드를 호출하여 인터페이스 메소드를 명시 적으로 구현합니다. 상속을 추가하면 상황이 추악 해집니다 (인터페이스를 다시 구현해야 함)