reimplementing an interface in a derived class

Heromyth bitworld at qq.com
Thu Jan 10 02:14:26 UTC 2019


On Thursday, 3 January 2019 at 23:23:12 UTC, Neia Neutuladh wrote:
> On Thu, 03 Jan 2019 22:30:48 +0000, kdevel wrote:
>> class A : D {
>>      int foo() { return 1; }
>> }
>> 
>> class B : A, D {
>> [...]
>>
>> What is the meaning of the ", D"? It does not seem to make a 
>> difference if it is omitted.
>
> B must provide its own implementation of D. It can't simply use 
> A's implementation.

As for class B, it has already included foo(), even if it doesn't 
override this method. So, is it necessary to override it again? 
It not always needed to override foo(). Sometimes, we just want 
to keep it as the one in class A and override it as necessary. 
Honestly hope that the compiler can do this.


More information about the Digitalmars-d-learn mailing list