В С# нет множественного наследования как такового.
Вместо него сделаны интерфейсы, которые сами по себе являются абстракцией. Если знаете C++ -наиболее близкими будут абстрактные классы. Интерфейс не содержит реализаций методов.
Когда создается класс, использующий интерфейс, класс должен реализовать те методы, что описаны в интерфейсе. Класс может использовать несколько интерфейсов, отсюда и возникает подобие множественного наследования
Если вкратце:
//Интерфейс 1
public interface I1 {
void some1();
}
//Интерфейс 2, на основе I1
public interface I2 : I1 {
void some2();
}
//Класс на основе I2 и, как следствие I1
class MyClass : I2 {
//Мы обязаны описать все методы из I1 и I2
public void some1() {
...что-то тут делаем
}
public void some2() {
...что-то тут делаем
}
}
Примеры:
http://msdn.microsoft.com/ru-ru/library/64syzecx.aspx
Более популярно, но менее точно:
http://professorweb.ru/my/csharp/charp_theory/level9/9_1.php