2017-06-30 12 views
1

私は2つのクラスを持ち、それぞれが同じクラスを継承します。 他のクラスのメソッドを呼び出すときに、別のクラス属性値を変更します。ここで私が持っているものです。Javaの2つの娘クラス間で変数値を変更する

public class Termometro extends Equipamentos{ 

    public Termometro(String nome, int id) { 
     super(nome, id); 
    } 

-

public class ArCondicionado extends Equipamentos{ 

    public ArCondicionado(String nome, int id) { 
     super(nome, id); 
    } 

そしてArCondicionadoクラスでこのメソッドを呼び出すことにより:

@Override 
public void setValor(double valor) { 
    super.setValor(valor);//change the atribute "valor" value of the termometro class here. 
} 
+0

親クラスの両方の子クラスを参照する必要があります。次に、あなたが 'super'呼び出しをするとき、親クラスに他のクラスも更新するいくつかのロジックを持たせてください。 – QBrute

+0

値が常にすべての子クラス間で共有されている場合は、静的フィールド – BackSlash

答えて

0

のすべてのインスタンスで値を共有するstaticフィールドを使用しますクラス。

public class Equipamentos { 

    public static double valor; 

    protected String nome; 
    protected int id; 

} 

次に、値をEquipamentos.valor = value;に変更します。

0

ArCondicionadoクラスにTermometroの参照がある可能性があります。

+0

を使うことができます。私はそれがうまくいくと思います。私がそれを呼び出すと、このエラーが発生します:java.lang.NullPointerException。 null値がどこから来ているのかわかりません。 – Vinuz

+0

次に、termometerがコンストラクタでインスタンス化されていることを確認してください。 – DanielPDF

関連する問題