interfaces ? whats going on here !!

I happen to have understood interfaces and have written very simple classes within one folder but this example is quite tedious.

Can you please explain me what is happening with the first 10 15 line in this example ?

static CrossPlatformInputManager() is a static constructor.

It will be called only once, before any instance of the class is created, and is typically used for initializing the static members of a class etc.

In this case it is assigning different Input classes depending on whether the program is being compiled for mobile or not.