Opa, então você precisa que os membros da classe PessoaBase
estejam disponíveis na PessoaCarac
.
Para isto, usamos a herança! No C#, a sintaxe de herança é:
class ClasseDerivada : ClasseBase
{
}
No curso, usamos o exemplo dos funcionários do banco ByteBank, então criamos a classe base Funcionario
:
public class Funcionario
{
public string nome;
public double salario;
}
A partir disto, podemos criar um Analista
e, para não repetir a definição do nome
e salario
, herdamos de Funcionario
:
public class Analista : Funcionario
{
public string especialidade;
}
(nesse exemplo adicionei o campo especialidade
em Analista
)
Para usar o código, ficamos com :
Analista mariana = new Analista();
mariana.nome = "Mariana";
mariana.especialidade = "Computação de alta performance";
Mas, todo objeto do tipo Analista
é também Funcionario
, afinal, fizemos a herança. Então podemos escrever o código abaixo:
Funcionario mariana = new Analista();
mariana.nome = "Mariana";
Perceba, contudo, que agora que a variável mariana
é do tipo Funcionario
e não mais do tipo Analista
. O tipo Funcionario
não define um membro chamado especialidade
, então o código abaixo não compila:
Funcionario mariana = new Analista();
mariana.nome = "Mariana";
mariana.especialidade = "Computação de alta performance"; // erro aqui
No seu caso de PessoaBase
e PessoaCarac
, teremos:
public class PessoaBase
{
public string nome;
}
public class PessoaCarac : PessoaBase
{
}
O que você acha? Ajudei com a dúvida?
Abs.