Мой опыт работы с ООП связан с ActionScript 3, но я уверен, что он относительный.
Статические методы нельзя переопределять, и они не используются, когда класс расширяет класс предка.
Модификаторы доступа не используются в интерфейсе, потому что интерфейс используется для настройки методов PUBLIC.
В AS3 интерфейс - это просто сигнатура метода без блока, но с типами данных.
Важно отметить, что сигнатуры методов получения / установки могут также использоваться в интерфейсе. Они полезны, и если вы используете только сеттер, вы создали открытый доступ только для чтения к закрытой инкапсулированной переменной.
Что касается интерфейса вместо абстрактного класса, все зависит от того, как вы хотите реализовать свой код. Часто время, интерфейс и абстрактный класс используются вместе для достижения разных результатов с использованием наследования и полиморфизма (расширяет / реализует).