Чтобы не порождать проблем
ромбовидного наследования и не героически превозмогать их впоследствии виртуальным наследованием и прочими методами, т.е. чтобы максимально упростить это самое наследование.
Август СентябрьЗнаток (343)
2 месяца назад
Меня волнует не "почему классы не поддерживают множественное наследование", а наоборот, почему классы уже наследуясь от Object, могут наследоваться от другого класса.
DefГений (64073)
2 месяца назад
>Но нельзя:
class Person: Object, Human
[где вместо Object нельзя было бы указывать произвольный класс в условиях допустимости только транзитивного наследования]
Такая запись 1) создавала бы путаницу, представляя дело так, что в языке якобы имеется множественное наследование, в условиях его отсутствия, 2) не предоставляла бы никаких преимуществ программисту, 3) не отображала бы реальную иерархию наследования.
структуры не могут наследоваться ни от чего, т.к. они унаследованы от класса Value.Type, а тот в свою очередь от Object. В C# нельзя делать множественное наследование, кроме интерфейсов, поэтому раз структуры уже унаследованы от Value.Type, то ни от чего другого они уже не могут наследоваться.
классы тоже наследуются, но уже напрямую от Object. Но почему они могут наследоваться от других классов?
По сути же: это то же самое, что и Object наследуется неявно.
Тогда почему можно: Но нельзя: