从派生类获取数据到父类

时间:2013-01-09 14:56:52

标签: android android-intent

我有自己的类,它扩展了Activity。我有另一个课程,扩展了我的第一堂课。我怎样才能从头等舱获得二等数据? 这是用于更好理解的模式: class1扩展了Activity,class2扩展了class1。现在我想在class1中获取class2中的一些数据。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

您可以在第1类(父级)中设置属性,并从第2类

中进行分配
 class A {
      protected int a;
 }

 class B extends A {

      void method() {
           a = 1;
      }
 }

答案 1 :(得分: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();
}
}

答案 2 :(得分:0)

您可以通过覆盖getter来从派生类上游到父类中获取数据:

abstract class A {
  protected abstract int getX();

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

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

如果派生类必须提供某些值,因为没有合理的默认值,这很有用。无法执行此操作的类(不实现抽象getter方法)根本无法编译,错误消息将是应该完成的明确提示。使用可分配的内部字段,您可以做的最多就是在运行时检查。