2017-02-20 19 views
-2

好吧,所以我是新來的java,所以這可能是一個愚蠢的問題。在我的超類中有一個方法接受一個通用對象並返回一個對象。在我的子類中,我試圖重寫/縮小該方法以返回我在別處定義的抽象類。基本上所有這個覆蓋需要做的是preform相同的方法,但用較窄的類替換對象。我如何去做這件事?它應該只是一行或兩行代碼,但我只是不知道它的語法。Java。方法重寫和縮小返回類型

所以在超富有如下方法等:

public abstract class Foo { 
    public Object doSomething() { 
     Object objVar; 
     //does stuff to objVar 
     return objVar; 
    } 
} 

然後,在一個diff Java文件用於一個對象的構造:

public abstract class Zee { 
    //constructors & methods for zee 
} 

然後,在子類:

public class Subbie extends Foo { 
    @Override 
    public Zee doSomething() { //covariant return type?? maybe? 


    return //needs to preform the same actions 
      //as the super doSomething method, but with 
      //the narrower return type. 
    } 
} 
+3

顯示代碼或無人能幫助您。請[編輯]你的文章,幷包括一個[mcve]展示你的問題。 –

回答

0
  1. 檢查縮小ret的語法甕式看到這一點:Can overridden methods differ in return type?(基本上你這樣做是正確的)

  2. 從父類使用super.doSomething()

  3. 無法實例抽象類的對象調用方法。您應該擴展它並返回擴展類的對象