26/03/2014

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.

Rachel Andrade

Melhor resposta

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.

Joel Rodrigues

Responder Citar

Outras Respostas

26/03/2014

Hector Figueroa

Poste o seu código por favor
Responder Citar

26/03/2014

Rachel Andrade

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;}
	}
}
Responder Citar

26/03/2014

Rachel Andrade

E aqui é a classe filha, onde eu quero acessar os campos herdados da classe mãe.
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.
Responder Citar

31/03/2014

Hector Figueroa

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).
Responder Citar

04/06/2014

Rachel Andrade

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.
Responder Citar

04/06/2014

Jair Souza

E como ficou ?
É interessante para outros com o mesma dificuldade...
Responder Citar

05/06/2014

Rachel Andrade

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.
Responder Citar