Какие принципы использовать для отбора классов для наследования

JavaнаследованиеООПпаттерны проектированияпринципы SOLID