Если MyClass1 не реализует / не расширяет MyClass2, я ничего не знаю о том, что будет выполнять преобразование «как MyClass2» без перегрузки старого резервного Java-метода. Явная перегрузка метода с подписью, включая MyClass1:
def method1(MyClass1 mc1) {
method1(mc1 as MyClass2)
}
Другая, более интересная альтернатива - не указывать явно метод method1, чтобы он не требовал наличия экземпляра MyClass2:
def method1(mc) {
// do stuff and let mc walk/talk/quack like MyClass2
// or even do the "as MyClass2" in this method if you need it for something further down.
}