[Edit]
My original-question was \"Why to decide between static and non-static? Both do the same...\"
Unfortunately it was edited to a C#-specific question wh
You cannot use static methods to implement an interface, and you cannot override static methods. So using static methods means that you are simply not doing OOP.
Think about how you would implement the following functionality using only static methods?
interface IDocument
{
void Print(IDevice targetDevice);
}
IDocument instance;
instance = new PdfDocument();
instance.Print(printer);
instance = new WordDocument();
instance.Print(printer);