C # neden bu şekilde tasarlandı?
Anladığım kadarıyla, bir arayüz sadece davranışı tanımlar ve belirli davranışın uygulandığı arayüzü uygulayan sınıflar için sözleşmeye bağlı bir yükümlülüğü tanımlamak amacına hizmet eder.
Sınıflar bu davranışı paylaşılan bir yöntemle uygulamak istiyorsa neden olmasın?
Aklımda ne var bir örnek:
// 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 sözdizimi kullanılarak) statik yöntemi çağırarak açık bir şekilde arabirim yöntemini uygular. Buna miras eklediğinizde işler çirkinleşiyor (arayüzü yeniden uygulamak zorundasınız)