Абстрактные классы
1.Не может быть создан независимо от их производных классов. Конструкторы абстрактных классов вызываются только их производными классами.
2. Определите сигнатуры абстрактных членов, которые должны реализовывать базовые классы.
3.Более расширяемы, чем интерфейсы, без нарушения совместимости версий. С абстрактными классами можно добавить дополнительные неабстрактные члены, которые могут наследовать все производные классы.
4.Может включать данные, хранящиеся в полях.
5. Разрешить для (виртуальных) членов, которые имеют реализацию, и, следовательно, предоставляют реализацию по умолчанию члена производного класса.
6. При получении из абстрактного класса используется единственный и единственный вариант базового класса подкласса.
Интерфейс
1.Не может быть создан экземпляр.
2.Внедрение всех членов интерфейса происходит в базовом классе. Невозможно реализовать только некоторые члены внутри реализующего класса.
3. Расширение интерфейсов дополнительными членами нарушает совместимость версий.
4.Не могу хранить данные. Поля могут быть указаны только на производных классах. Обходной путь для этого должен определить свойства, но без реализации.
5.Все члены автоматически становятся виртуальными и не могут включать никакую реализацию.
6. Хотя реализация по умолчанию не может появиться, классы, реализующие интерфейсы, могут продолжать наследоваться друг от друга.