Разве не каждый класс, который наследует интерфейс, должен реализовывать все члены интерфейса? - PullRequest
1 голос
/ 26 апреля 2019

В чем разница между ClassTemp1 и ClassTemp2<T>?

Я думал, что каждый класс, который реализует интерфейс, должен реализовывать все члены интерфейса, но ClassTemp2<T> не имеет ошибки. Почему?

public interface ITemp : IComparable
{
    void Temp();
}

public class ClassTemp1 : ITemp // Error
{

}

public class ClassTemp2<T> where T : ITemp // No Error
{

}

1 Ответ

1 голос
/ 26 апреля 2019

Класс ClassTemp2 не наследует и не реализует какой-либо интерфейс.Просто ваш «класс параметров» T реализует его.

Другими словами: ClassTemp2 может что-то делать с T и его методами, в частности, вызывая метод Temp() для T в своих собственных методах.

ClassTemp2 не "имеет" и не "реализует" интерфейс ITemp.Просто «класс параметров» T делает, а не ClassTemp2.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...