c# call abstract method in base class