如何在继承的方法中强制转换为类的子类?

时间:2015-07-18 06:12:43

标签: java inheritance

我想调用在父类中定义的返回“this”的方法,但是我希望它们的返回Type是子类型,而不是父类型。
目前我正在使用这种丑陋的,本身容易出错的技术,只有通过ClassCast Exceptions才能看到错误......

abstract class AbstractClass<T extends AbstractClass<?>>{
    public T doSomething(){
        return (T)this;
    }
}

class Implementation extends AbstractClass<Implementation>{     
}

// usage
Implementation impl = new Implementation().doSomething().doSomething();

有没有更聪明的方法呢?
与在每个子类中实现具体的返回类型相比,我的方式(转换为泛型类型)是否会降低性能?

0 个答案:

没有答案