That's essentially the solution that Scala adopted when implementing traits.
The catch is, you're then in a position that multiple inheritance becomes possible, and the dreaded "diamond inheritance" problem along with it. This is exactly the sort of thing that Java sought to eliminate with interfaces in the first place!
Scala solves the conundrum through an technique known as linearisation, which then also begs for self-typing to make it a complete solution. By this stage, we've already gone quite some distance beyond the remit of defender methods...
On 8 August[masked]:20, Alex Anderson <[address removed]>
It's a shame there's not a third option in the survey - if a method
body is declared in an interface, then surely it could be understood
implicitly to be a default implementation?