основные различия синтаксические: абстрактный класс - это класс, а значит есть ограничения по кол-во одновременных наследований (в отличие от интерфейса), абстрактный класс может содержать логику (в отличие от интерфейса), абстрактный класс не требует реализации всех свойств и методов (только если не помечены как virtual, в отличие от интерфейса), абстрактный класс нельзя реализовать структурой (в отличие от интерфейса) - и т.д. и т.п.
1. Ты назвал первым различием возможность множественного наследования. Засчитано.
2. Абстрактный класс может содержать логику и это плюс в сторону абстрактного класса и минус в сторону интерфейса.
3. Абстрактный класс легко можно заставить реализовать полностью, точно так же как и интерфейс.
4. Касательно структуры, засчитано, но сейчас мы не о них, структуры это тип значений, другая тема.
1. Шаблоном может выйти и абстрактный класс
2. Композиция так же возможно и легко через классы