Acessar campos em classe herdeira

26/03/2014

0

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

Rachel Andrade

Responder

Post mais votado

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

Joel Rodrigues
Responder

Mais Posts

26/03/2014

Hector Figueroa

Poste o seu código por favor
Responder

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

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

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

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

04/06/2014

Jair Souza

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

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar