JAVA方法重写和缩小返回类型

JAVA方法重写和缩小返回类型,java,methods,types,overriding,covariant,Java,Methods,Types,Overriding,Covariant,好吧,我是java新手,所以这可能是一个愚蠢的问题。在我的超类中,有一个方法接收泛型对象并返回一个对象。在我的子类中,我试图重写/缩小方法以返回我在别处定义的抽象类。基本上,这个重写所需要做的就是预执行相同的方法,但用更窄的类替换对象。我该怎么做呢?它应该只有一两行代码,但我不知道它的语法 因此,在超类Foo中有一种方法,如: public abstract class Foo { public Object doSomething() { Object objVar;

好吧,我是java新手,所以这可能是一个愚蠢的问题。在我的超类中,有一个方法接收泛型对象并返回一个对象。在我的子类中,我试图重写/缩小方法以返回我在别处定义的抽象类。基本上,这个重写所需要做的就是预执行相同的方法,但用更窄的类替换对象。我该怎么做呢?它应该只有一两行代码,但我不知道它的语法

因此,在超类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.
     }  
} 
  • 要检查狭义返回类型的语法,请参见以下内容:(基本上你做得对)

  • 要从父类调用方法,请使用
    super.doSomething()

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


  • 显示代码,否则没有人能帮你。请在你的帖子中加入一个演示你的问题的例子。