在下面的类Class1的定义中,方法的重载是否合法?
public class Class1{
private void MyMethod1(int i){}
protected void MyMethod1(int i){}
public int MyMethod1(int i){return -1;}
public void MyMethod2(int i){}
public void MyMethod2(object o){}
public void MyMethod2(out int i){i = 1;}
}