2015-12-17 38 views
-23

我有這樣的代碼:傳承 - 模擬考試

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賦值語句是有效的?

我在想這兩個'超'線是正確的?

+2

任何考試的範圍是測試你對這個話題的瞭解。在SO上提出「緊急」或「最後一分鐘」問題玷污了該範圍。再加上你的問題不適合SO,原因很多。請參閱[這裏](http://stackoverflow.com/help)。 – Mena

+0

我剛剛完成,但我認爲我搞砸了。每個有上述選項的方法都只是返回0.他們做了比較,儘管我猜想哪個是主要的東西? –

+0

我知道它是一個令人震驚的Kocko,我道歉,只是抓着這裏的吸管! –

回答

2

someMethod中的哪個賦值語句有效?

所有這些。

xthis.xsuper.x都指向protected int xclass A這是子類B可見。 this.getX()super.getX()兩者都呼叫public int getX()class A,其對於子類B是可見的。

answer,x和返回值getX()都是int類型,所以賦值是有效的。

+0

謝謝:)只是在一個狡猾的編譯器上自己試了一下,它爲我所有的方法返回0,所以所有的工作都像你說的!再次歡呼。 –