всё-таки мне контракты/трейты/интерфейсы нравятся, если они сделаны хорошо, тип пусть сам разбирается, как его реализовать, а ты просто ждёшь от него определённого интерфейса взаимодействия, а наследование, собственно для того, что можно расширить, но оно не всегда нужно, согласен