Я искал здесь и на других форумах и не нашел хорошего ответа. Я вроде как знаю, что расширение классов - не лучшая практика. И что я должен больше использовать интерфейсы. моя проблема в том, что обычно я начинаю создавать интерфейсы, а затем перехожу к абстрактным классам, потому что всегда есть некоторые функции, которые я хочу реализовать в суперклассе, чтобы мне не приходилось реплицировать их в каждом дочернем классе. Например, у меня есть класс Vehicle и дочерние классы Car и Bike. многие функциональные возможности, такие как Move() и Stop(), могут быть реализованы в классе Vehicle, так что лучше всего поддерживать чистоту архитектуры, избегать повторения кода и использовать интерфейсы вместо наследования? Большое спасибо!
(если вы понятия не имеете, почему я это спрашиваю, вы можете прочитать эту интересную статью: http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html)