using System;
public class Test
{
public static void Main()
{
objetoFinal final = new objetoFinal();
final.escribir("Hola");
}
public class objetoParaUsar
{
public void escribir(string msj)
{
Console.Write(msj);
}
public objetoParaUsar()
{
}
}
public class objetoIntermedio
{
public objetoParaUsar objParaUsar;
public objetoIntermedio()
{
objParaUsar = new objetoParaUsar();
}
}
public class objetoFinal
{
private objetoIntermedio _obj;
public objetoFinal()
{
_obj = new objetoIntermedio();
}
public void escribir(string msj)
{
_obj.objParaUsar.escribir(msj);
}
}
}
dXNpbmcgU3lzdGVtOwogCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlvYmpldG9GaW5hbCBmaW5hbCA9IG5ldyBvYmpldG9GaW5hbCgpOwoJCWZpbmFsLmVzY3JpYmlyKCJIb2xhIik7Cgl9CiAKCXB1YmxpYyBjbGFzcyBvYmpldG9QYXJhVXNhcgoJewoJCXB1YmxpYyB2b2lkIGVzY3JpYmlyKHN0cmluZyBtc2opCgkJewoJCQlDb25zb2xlLldyaXRlKG1zaik7CgkJfQogCgkJcHVibGljIG9iamV0b1BhcmFVc2FyKCkKCQl7CiAKCQl9Cgl9CiAKCXB1YmxpYyBjbGFzcyBvYmpldG9JbnRlcm1lZGlvCgl7CgkJcHVibGljIG9iamV0b1BhcmFVc2FyIG9ialBhcmFVc2FyOwogCgkJcHVibGljIG9iamV0b0ludGVybWVkaW8oKQoJCXsKCQkJb2JqUGFyYVVzYXIgPSBuZXcgb2JqZXRvUGFyYVVzYXIoKTsKCQl9Cgl9CiAKCXB1YmxpYyBjbGFzcyBvYmpldG9GaW5hbAoJewoJCXByaXZhdGUgb2JqZXRvSW50ZXJtZWRpbyBfb2JqOwogCgkJcHVibGljIG9iamV0b0ZpbmFsKCkKCQl7CgkJCV9vYmogPSBuZXcgb2JqZXRvSW50ZXJtZWRpbygpOwoJCX0KIAoJCXB1YmxpYyB2b2lkIGVzY3JpYmlyKHN0cmluZyBtc2opCgkJewoJCQlfb2JqLm9ialBhcmFVc2FyLmVzY3JpYmlyKG1zaik7CgkJfQoJfQp9