I've remembered another use-case where Interface and Abstract class solves my problem but Delegation won't (or I don't have the knowleged to do it).
Interface X
Abstract class Core : X
Abstract class ProjectBase : Core
- X contains ViewModel factory and ViewBinding logic (private);
- Core implements X and overrides project agnostic logic;
- ProjectBase extends Core and overrides the remaining X (project related) methods.
With Delegation I would need an interface implementation (Impl), but then ProjectBase wouldn't override the desired methods. If Impl was abstract Core couldn't extend from other classes, for instance AppCompatActivity.
I don't know how could I solve this setup with Delegation.
Please feel free to share you knowledge. Thanks.