Default method implementations in interfaces?
    Alex Parrill via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Fri Oct 23 08:07:00 PDT 2015
    
    
  
On Friday, 23 October 2015 at 14:58:43 UTC, pineapple wrote:
> Is it possible to have default method implementations in 
> interfaces à la Java in D? Or some equivalent that allows 
> multiple inheritance without a bunch of identical copypasted 
> method bodies?
Use template mixins: http://dlang.org/template-mixin.html
interface MyInterface {
     void foo();
     int bar();
}
mixin template MyInterfaceDefaultImpl() {
     void foo() {
         // put code here
     }
     int bar() {
         // put code here
     }
}
class MyClass : MyInterface {
     mixin MyInterfaceDefaultImpl!(); // Similar to inserting the 
body of `MyInterfaceDefaultImpl` at this point.
     mixin MyOtherInterfaceDefaultImpl!(); // Can put any amount 
of them here.
}
    
    
More information about the Digitalmars-d-learn
mailing list