2017-02-20 80 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. 无法实例抽象类的对象调用方法。您应该扩展它并返回扩展类的对象