Расширение с помощью формы делегирования (mixin) здесь желательно по ряду причин, но наиболее уместным является то, что вы (вероятно) расширяете классы сторонних библиотек ненормативным образом.
Но это все догадки, так как мы понятия не имеем о каких библиотеках вы говорите.Например, может случиться так, что это плохо написанная библиотека, в которой classA
(используя ваш пример) действительно не предполагается расширять, но автор пренебрег спецификацией final class classA
и т. Д. Если бы это было так, то вы явноне хочу расширять этот класс (даже если можете).
Все это говорит, учитывая тот факт, что вам (а) нужна только общая функциональность, (б) не требуется полиморфная семантика, делегированная форма делаетсовершенное чувство.
Советы относительно беспокойства по поводу производительности: сравните его.
И не пренебрегай финалом - JIT - твой друг (будь добр к нему и накорми его):
final private classA A = new classA();