У C # клас, який реалізує інтерфейс, необхідний для визначення всіх членів цього інтерфейсу. Що стосується абстрактного класу, ви просто визначите тих членів із abstract
ключовим словом:
interface IFoo
{
void Bar();
}
abstract class Foo : IFoo
{
public abstract void Bar();
}
Або кажучи інакше: вам не доведеться "реалізовувати" це (що було б жахливим обмеженням для абстрактних класів); однак у C # вам потрібно сказати компілятору, що ви навмисно передаєте долар конкретним підкласам - і вищевказаний рядок коду показує, як це зробити.
У коментарях та оскарженнях, які скаржаться, що це не відповідь на питання, пропущено суть. Хтось, хто приходить до Stack Overflow, отримавши цю помилку компілятора, але маючи абстрактний клас, у якому було б помилкою поставити реалізацію, застряг без хорошого рішення - доведеться писати методи впровадження, які викидають винятки з виконання часу, жахлива робота -поруч - поки вони не матимуть вищевказану інформацію. Незалежно від того, добре чи погано, що C # вимагає цієї явності, не входить у сферу переповнення стека, і не стосується питання, ані цього відповіді.