They aren't!
The
main
method must be static, because static methods do not need an instance of the class in order to be called - all non static methods require an instance of the class to be created before you can call them.
Since the main method is where your application starts, you can't create a class instance first (because the instance constructor would have to run before you could call the
main
method).
Once
main
has been called it can create instances, and call non-static methods on those instances:
static void main()
{
MyClass mc = new MyClass();
ms.DoSomething();
}