Default methods are a java 8 feature. Kotlin still targets Java 6 (and Java 6 class file format). When you compiled against the old interface this was fine as the default methods are not present for the Kotlin class to clobber. What is most surprising to me is that it compiles correctly, although that probably has to do with the fact that it has to be able to compile against java 8 class files (as source of symbols) for practical reasons.