Considering C# written for maximum performance, there are two ways we can have base class methods (note: we're talking about a stateless class here, no fields, only methods):
I like option A because it makes the relationship clearer. What I'm wondering is, if all these base class methods are non-virtual, i.e. in the base class A they already cannot be overridden, are there vtable calls? Obviously, "non-virtual" implies no, but if there are any overheads, I'd like to know.
According to @HansPassant (many thanks),
Even non-virtual calls to an instance method are made with the exact equivalent of a virtual call. Giving up a bit of perf for a very nice guarantee, a NullReferenceException is always raised at the call site. Diagnosing NRE when this is null is quite ugly.
Only a call to a static method is non-virtual. That includes extension methods btw.