It's true that it's not possible to create an instance of an abstract
or static
class but that's about where the similarities end.
- Can inherit from
abstract
cannot inherit from static
- Can have instance methods on
abstract
cannot have instance on static
- An
abstract
class can implement an interface a static
class cannot
Fundamentally they are trying to serve two different purposes
- An
abstract
class forms a blue print / pattern which is then implemented in derived classes in different and (hopefully) transparent ways
- A
static
class is simply a container for a collection of possibly related static
methods