Acessar campos em classe herdeira
Olá, galera.
Estou estudando aqui a parte de herança de classes e criei duas classes, uma herdando da outra. Porém, na classe herdeira eu não estou conseguindo acessar algumas coisas da classe mãe, só consigo acessar os campos da própria classe herdeira. Alguém tem ideia do que pode ser?
Grata.
Estou estudando aqui a parte de herança de classes e criei duas classes, uma herdando da outra. Porém, na classe herdeira eu não estou conseguindo acessar algumas coisas da classe mãe, só consigo acessar os campos da própria classe herdeira. Alguém tem ideia do que pode ser?
Grata.
Rachel Andrade
Curtidas 0
Melhor post
Joel Rodrigues
31/03/2014
Olá, Rachel.
Observe que os campos que você está tentando acessar foram definidos como privados na classe base. Para que um campo esteja acessível nas classes filhas, é preciso definí-lo como protected ou public, dependendo do caso.
Observe que os campos que você está tentando acessar foram definidos como privados na classe base. Para que um campo esteja acessível nas classes filhas, é preciso definí-lo como protected ou public, dependendo do caso.
GOSTEI 1
Mais Respostas
Hector Figueroa
26/03/2014
Poste o seu código por favor
GOSTEI 0
Rachel Andrade
26/03/2014
Oi, esta é minha classe mãe:
public class Equipamento
{
private string fabricante;
private string modelo;
public string Fabricante
{
get {return fabricante;}
set {fabricante = value;}
}
public string Modelo
{
get {return modelo;}
set {fabricante = modelo;}
}
}GOSTEI 0
Rachel Andrade
26/03/2014
E aqui é a classe filha, onde eu quero acessar os campos herdados da classe mãe.
Obrigada.
public class Motor : Equipamento
{
private int potencia;
public int Potencia
{
get {return potencia;}
set {potencia = value;}
}
public string GetDescricaoCompleta
{
return "Motor " + this.modelo + " " + this.potencia + "CV " + this.fabricante;
}
}Obrigada.
GOSTEI 0
Hector Figueroa
26/03/2014
Bom dia,
ou então apenas mencionar as variáveis que em maiúscula, pois as variáveis que você esta tentando acessar estão encapsuladas (em minuscula).
ou então apenas mencionar as variáveis que em maiúscula, pois as variáveis que você esta tentando acessar estão encapsuladas (em minuscula).
GOSTEI 0
Rachel Andrade
26/03/2014
Gente, mil desculpas pela demora em dar um retorno. Muito obrigada a todos, consegui entender essa questão e resolvi meu problema.
Algumas propriedades precisavam ser públicas e outra protegidas, então só fiz as adaptações e passei a referenciar os atributos certos em cada lugar.
Algumas propriedades precisavam ser públicas e outra protegidas, então só fiz as adaptações e passei a referenciar os atributos certos em cada lugar.
GOSTEI 0
Jair Souza
26/03/2014
E como ficou ?
É interessante para outros com o mesma dificuldade...
É interessante para outros com o mesma dificuldade...
GOSTEI 0
Rachel Andrade
26/03/2014
Então, como eu disse, eu declarei as propriedades como protected ao invés de private, pois elas tinham de ser acessadas nas classes filhas. E fora das classes, acessei as propriedades públicas, as que começam com maiúsculo.
GOSTEI 1