LINQ C#

using System;
class Class1 {
}
class Class2 {
    public void Method1(string s) {
        Console.WriteLine("Class2.Method1");
    }
}
class Class3 {
    public void Method1(object o) {
        Console.WriteLine("Class3.Method1");
    }
}
class Class4 {
    public void Method1(int i) {
        Console.WriteLine("Class4.Method1");
    }
}
static class Extensions {
    static public void Method1(this object o, int i) {
        Console.WriteLine("Extensions.Method1");
    }
    static void Main() {
        new Class1().Method1(12); // Extensions.Method1 is called
        new Class2().Method1(12); // Extensions.Method1 is called
        new Class3().Method1(12); // Class3.Method1 is called
        new Class4().Method1(12); // Class4.Method1 is called
    }
}