Compartilhando variaveis ao extender Classe

3 respostas
R

Boa noite amigos, estou com um problema no meu projeto e conto com a ajuda de vcs para resolvê-lo.

Tenho uma classe main que cria esses 3 objetos dessa forma:

Objeto a = new A();		
Objeto b = new B();
Objeto c = new C();

Aqui vai a classe Objeto:

public class Objeto {

int num1;
int num2;
int num3;

public Objeto(int num1, int num2, int num3) {

this.num1 = num1;
this.num2 = num2.
this.num3 = num3;

}

public void metodo1() {}

public void metodo2() {}

public void metodo3() {}

}

Agora aqui vai a classe A, sendo a as classes B e C sao iguais a A, soh via mudar a forma de manipular os dados:

public class A extends Objeto {

public A() {
super(1,2,3);
}

public void metodo1() {
super.metodo1();
// Implementaçoes a mais
}

public void metodo2() {
super.metodo2();
// Implementaçoes a mais
}

public void metodo3() {
super.metodo3();
// Implementaçoes a mais
}

Conforme no esboço as classes A, B e C tem parte do seu comportamento em comum, exceto por algumas implementaçoes a mais.

O problema é que as 3 classes estao compartilhando as suas variaveis, quando eu mudo uma variavel na classe B do objeto b, os objetos a e c tambem mudam suas variaveis.

O que devo fazer??

Desde ja agradeço a todos.

3 Respostas

M

Verique se na sua super classe (objeto), as variaveis (num1,num2,num3), não estão declaradas como STATIC.
Pois está seria a unica forma de estar acontecendo isso que vc está relatando…
flw

R

Muito obrigado meu amigo!

Retirei o static e funcionamento exatamente como eu queria.

Obrigadao mesmo. Abrços

caique_castanho

Além de retirar o static declare os atributos como protected, dessa forma estarão acessíveis por herança…

Criado 2 de abril de 2008
Ultima resposta 3 de abr. de 2008
Respostas 3
Participantes 3