Caligo Wrote:
> "The override keyword in the signature of Friend.bgColor is required," (193)
>
> This code compiles:
>
> class Contact{ string bgColor(){ return ""; } }
> class Friend : Contact{
> string bgColor(){ return "LightGreen"; }
> }
>
> So how is 'override' required? Can I get an example of where
> 'override' makes a difference?
This is probably due to compiler not enforcing the rule. There is no difference
from having the 'override' and not having it. What it provides is documentation
that the function comes from the parent and it will throw an error if you are
not overriding a function. As this documentation is so useful it is considered
as something that should just be required even though the compiler knows what
is being overridden.
C# also allows you to create a 'new' function, which doesn't override but is
the same name and signature, I don't know its importance.