Апстрактна класа је она која је замишљена само као основна класа других класа. 'Абстрактни' модификатор се користи за прављење класе апстрактно. Апстрактни модификатор указује на то да постоји нека недостајућа имплементација коју треба имплементирати у класу изведену из ње. Апстрактна класа може имати апстрактне и не-апстрактне чланове. Апстрактна класа би требала имати барем једну апстрактну методу, јер у противном нема користи да се класа декларише као "апстрактна".
Пример апстрактне класе у Ц #:
Као што је приказано у горњем примеру, апстрактна метода 'Ареа' унутар МиЦирцле класе превладава у изведеној класи МиАреа.
Интерфејс садржи само декларацију чланова укључујући методе, својства, догађаје или индексере. Не садржи имплементацију ових чланова. Класа или структура имплементира интерфејс, мора да пружи дефиницију метода декларисаних у интерфејсу. То значи да интерфејс пружа стандардну структуру коју изведена класа треба да следи.
Пример интерфејса у Ц #:
Као што је приказано у горњем примјеру, сучеље МиДата има двије методе декларације гетдата () и сховдата (). Клас НамеДата који имплементира ово сучеље требао би дати дефиницију метода декларисаних у МиДата интерфејсу.