Default implementations in inherited interfaces
Lodovico Giaretta via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jul 21 02:46:10 PDT 2016
On Thursday, 21 July 2016 at 09:41:27 UTC, Saurabh Das wrote:
> I have an interface A which declares a certain function. A
> second interface B inherits from A and wishes to provide a
> default implementation for that function. How can I achieve
> this? I'm facing an error when I try this:
>
> interface A
> {
> int func(int);
> }
>
> interface B : A
> {
> final int func(int)
> {
> return 0;
> }
> }
>
> class C : B
> {
> }
>
> rdmd it.d:
> it.d(14): Error: class it.C interface function 'int func(int)'
> is not implemented
>
> Thanks,
> Saurabh
Interesting.
This is worth a bugzilla issue, IMHO. In fact, if you try the
other way (i.e.: you provide an implementation of func in class
C), you get the opposite error, that you are overriding a final
function (B.func).
More information about the Digitalmars-d-learn
mailing list