2013-10-02 3 views
1

Если у меня есть ThumbPhoto объекта, который наследует Photo сущности и фото объект наследует Entity<int> является его достаточно, чтобы использоватьдействительно унаследовал класс может получить доступ к базовому классу

public class ThumbnailPhoto : Photo 

или я должен использовать

public class ThumbnailPhoto : Photo, Entity<int>

+2

Почему бы вам не попробовать два и посмотреть на себя? – Servy

ответ

5

C# не поддерживает множественное наследование, поэтому нет.

Это в стороне, хотя, это:

public class ThumbnailPhoto : Photo 

означает, что вы будете иметь доступ к Entity методов/свойств из-за

public class Photo : Entity<int> 

Этот принцип работает как бы глубоко ваше наследство получает.

1

Первым достаточно.

Базовые классы или интерфейсы вашего базового класса автоматически унаследованы.

Фактически Entity не является интерфейсом, более поздняя версия даже не действительна, так как вы можете указать только один базовый класс в C#.

1
public class ThumbnailPhoto : Photo 

выше вариант и достаточно, потому что ничего не будет достигнуто, если вы могли бы также включать Entity<int> assumping Photo происходит от Entity<int>

public class ThumbnailPhoto : Photo, Entity<int> 

выше пример множественного наследования которая не, поддерживаемый в C#


Не следует путать это с многократной реализацией интерфейса, который поддерживается:

public class ThumbnailPhoto : Photo, IEntity, IAmAnInterface 
2

множественное наследование не допускаются в C#. Вы не можете наследовать более одного класса. Однако иерархическое наследование прекрасное. Так что это нормально, чтобы написать:

public class ThumbnailPhoto : Photo 

и вы также проистекают из Entity<int>

Смежные вопросы