继承 - 模拟考试

时间:2015-12-17 13:01:38

标签: java inheritance

我有这段代码:

class A {
    protected int x;

    public int getX() {
        return x;
    }
}

class B extends A {

    private int answer;

    public void someMethod() {
      answer = x;
      answer = this.x;
      answer = this.getX();
      answer = super.x;
      answer = super.getX();
    } 
}

someMethod中的哪个作业声明有效?

我认为这两个超级'线条是否正确?

1 个答案:

答案 0 :(得分:2)

  

someMethod中的哪个作业声明有效?

所有这些。

xthis.xsuper.x都指向protected int x中的class AB对子类this.getX()可见。 super.getX()public int getX()都会在class A中调用B,该answer对子类x可见。

getX()intdate-format %Y/%m/%d time-format %H:%M:%S log-format %d %t %^: %^: %^: %h,%^"%r",%^"%^",%^"%v",%^"%R" 的返回值都是public void setItems(@NonNull List<ItemType> items) { mItems.clear(); mItems.addAll(items); myRecycleAdapter.notifyItemInserted(items.size()); 类型,因此分配有效。