I am wondering if there are any differences to derived classes when using abstract vs real classes for inheritance?
It looks to me like the real class inheritance creates an hierarchy whereas abstract class inheritance is just copy-paste code for the compiler to derived classes?
Does the abstract class creates a hierarchy? Can it be accessed using a special keyword?
I know that you use the base keyword to access the base class, but abstract members look just like the original members in the derived classes?
Lastly what’s the performance difference between the 2?
Yes the abstract class does exist – the compiler does not do a copy-paste. You will not find any performance difference though as the CLR must still do virtual method calls.
For example the following C#:
generates the following IL:
The concept of an abstract type is very much a part of the IL.