您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

通过将新类型指定为通用类型的实际类型来扩展通用类型有什么好处

通过将新类型指定为通用类型的实际类型来扩展通用类型有什么好处

当然OOP的答案是,AB。如果A不是一个BA则仅应B使用B功能来构成自己。

大概B也有一些通用的实现,它们利用了对通用类型的限制。

一个用例是B看起来像这样:

abstract class B<T extends B<T>> {
    public T createCopy(T t);
}

现在,子类可以实现,createCopy并且客户端代码可以安全地使用它,而无需强制转换…例如

class A extends B<A> {
    public A createCopy(A t) {
        return new A(t); //copy constructor
    }
}

比较以上内容

abstract class B {
    public B createCopy(B t);
}
class A extends B {
    public B createCopy(B t) { //Is the copy an A or a different subtype of B? We don't kNow.
        return new A(t); //copy constructor
    }
}
其他 2022/1/1 18:14:58 有693人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶