public static void Main()
var pessoa = RetornarPessoa<PessoaFisica>("a550");
Console.WriteLine(pessoa.Id);
public static T RetornarPessoa<T>(string id) where T: Pessoa, new()
return new T { Id = id };
public abstract class Pessoa
public string Id { get; set; }
public class PessoaJuridica : Pessoa
public string RazaoSocial { get; set; }
public class PessoaFisica : Pessoa
public string NomeCompleto { get; set; }