As all textbooks on C# will tell you, you cannot instantiate an abstract class.
I believe the keyword abstract was intended for that purpose.
So can anyone tell me why I can do something like this:
abstract class TwoDShape
{
// some code here
}
class test
{
static void Main()
{
TwoDShape shape = new TwoDShape(); // this gives an error
TwoDShape[] shapes = new TwoDShape[4]; // this is OK
}
}