首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抽象类中的动态抽象类

抽象类中的动态抽象类
EN

Stack Overflow用户
提问于 2015-12-07 14:11:53
回答 1查看 181关注 0票数 0

这个类的构造我有问题。我想以某种方式将超类Super2的扩展类类型作为Super1构造函数中的参数,但我不知道如何实现。

我想满足这些要求:

  • 在Super2 ()中初始化扩展类doStuffWithDoStuff()的实例
  • 不要将带有Super2实例的参数添加到doStuffWithDoStuff()
代码语言:javascript
复制
abstract class Super2 {
    Super2(String test) {
    }
    public void exit() {
    }
}
abstract class Super1 {
    abstract doStuff(Class<? extends Super2> super);
    protected doStuffWithDoStuff() {
         Super2 super2 = new Super2("test");
         doStuff(super2);
         super2.exit();
    }
}

用法:

代码语言:javascript
复制
class Test1 extends Super2 {
    Test1() {
        super();
    }
    public void doStuff() {
    }
}
class Test2 extends Super1 {
    doStuff(Test1 test) {
        test.doStuff();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-12-13 04:20:11

我认为你的问题太深奥了,无法理解你到底想达到什么目的。以下工作(符合您所描述的要求,我相信)会吗?

代码语言:javascript
复制
abstract class Super1 {

    private Class<? extends Super2> super2Type;

    protected Super1(Class<? extends Super2> super2Type) {
        this.super2Type = super2Type;
    }

    abstract doStuff(Class<? extends Super2> super);

    protected doStuffWithDoStuff() {
         Super2 super2 = super2Type.newInstance(); //Error handling omitted for brevity
         doStuff(super2);
         super2.exit();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34135609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档