Owen... Hopefully this is a succinct answer to your question Why can't a
static method be abstract or virtual (overridden)?:
It is an error to declare a static method abstract or virtual.
Declaring a static method abstract prohibits instantiation of the
enclosing class. Since static methods are part of the class itself they
can be invoked without creating an instance of the class, so there is no
logic in prohibiting instantiation of the enclosing class. Declaring a
static method virtual is an error since it would result in runtime
ambiguity. If the static virtual method was overridden in more than one
subclass, the runtime would not be able to determine which
implementation to invoke.
http://www.geocities.com/jeff_louie/OOP/oop40.htm
Regards,
Jeff
*** Sent via Developersdex http://www.developersdex.com ***