gpt4 book ai didi

java - 如何使构造函数定义强制

转载 作者:行者123 更新时间:2023-12-04 06:11:21 26 4
gpt4 key购买 nike

我有一个接口(interface) I 由基类 B 实现。基类由一堆类(A、C、D)扩展,这些类必须初始化基类 B 中声明的一些 protected 变量。我想在子类(A,C,D)中强制声明构造函数,以阻止用户依赖在 B 中声明的默认构造函数。但我确实希望 B 的默认构造函数自动执行,因为 B 可以由本身也是如此。我怎样才能做到这一点?

谢谢

最佳答案

将 B 的抽象父类(super class)与私有(private)构造函数一起使用:

public abstract class BSuper {

private BSuper() {
// initialize stuff
}

protected BSuper(some params) {
this():
// other init with parms
}
}


public class B extends BSuper {

public B(some other params) {
super(some params);
}
}


public class A extends B {

public A() {
super(some other params);
}
}

或类似的

关于java - 如何使构造函数定义强制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com