0

Activityを拡張する独自のクラスがあります。そして、私は私の最初のクラスを拡張する別のクラスを持っています。ファーストクラスのセカンドクラスからデータを取得するにはどうすればよいですか?これは理解を深めるためのスキーマです。class1はActivityを拡張し、class2はclass1を拡張します。ここで、class1にclass2からいくつかのデータを取得したいと思います。どうやってやるの?

4

3 に答える 3

2

クラス1(親)にプロパティを設定し、クラス2から割り当てることができます

 class A {
      protected int a;
 }

 class B extends A {

      void method() {
           a = 1;
      }
 }
于 2013-01-09T14:58:45.527 に答える
0

ゲッターをオーバーライドすることにより、上流の派生クラスから親クラスにデータを取得できます。

abstract class A {
  protected abstract int getX();

  void doThis() {
    int x = getX(); 
  }
}

class B extends A {
 @Override
 protected int getX() { return 17; };
}

これは、妥当なデフォルトがないため、派生クラスがいくつかの値を提供する必要がある場合に役立ちます。これを実行できない(抽象getterメソッドを実装していない)クラスは単にコンパイルされず、エラーメッセージは実行すべき明確なヒントになります。割り当て可能な内部フィールドを使用すると、実行時にすでにチェックすることができます。

于 2013-01-09T15:45:27.793 に答える
0
class A {
private int x = 5;

protected int getX() {
    return x;
}

protected void setX(int x) {
    this.x = x;
}

public void print() {
    // getX() is used such that 
    // subclass overriding getX() can be reflected in print();
    System.out.println(getX());
   }
}

class B extends A {
public B() {

}

public static void main(String[] args) {
    B b = new B();
    b.setX(10);
    b.print();
}
}
于 2013-01-09T15:04:36.640 に答える