-2

好的,所以我是 Java 新手,所以这可能是一个愚蠢的问题。在我的超类中,有一个方法接受一个通用对象并返回一个对象。在我的子类中,我试图覆盖/缩小方法以返回我在别处定义的抽象类。本质上,此覆盖所需要做的就是执行相同的方法,但将 Object 替换为更窄的类。我该怎么做呢?它应该只是一两行代码,但我只是不知道它的语法。

所以在 SuperClass Foo 中有一个类似的方法:

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.
     }  
} 
4

1 回答 1

0
  1. 要检查缩小返回类型的语法,请参阅:Can overridden methods different in return type? (基本上你做对了)

  2. 从父类调用方法使用super.doSomething()

  3. 您不能实例化抽象类的对象。您应该扩展它并返回扩展类的对象

于 2017-02-20T08:35:16.353 回答