好的,所以我是java的新手,所以这可能是一个愚蠢的问题。在我的超类中有一个方法,它接受一个通用的Object并返回一个Object。在我的子类中,我试图覆盖/缩小方法以返回我在其他地方定义的抽象类。基本上所有这个覆盖需要做的是预先形成相同的方法,但用较窄的类替换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.
}
}
答案 0 :(得分:0)
要查看缩小返回类型的语法,请参阅:Can overridden methods differ in return type?(基本上您正在执行此操作)
要从父类调用方法,请使用super.doSomething()
您无法实例化抽象类的对象。你应该扩展它并返回扩展类的对象