Java - 如何根据继承类的构造函数参数调用不同的 super()?

标签 java inheritance super

我试图让继承类要求更少的参数,并为父类(super class)计算“正确”的错误参数。 寻求有关如何在不使用工厂方法的情况下执行此操作的帮助。

这是一个简化事情的示例代码。 Son(int)会根据int的值调用super(int,boolean)。

class Base {
  ...
  public Base (int num, boolean boo2) { ...}
  ...
}

class Son extends Base {
  ...
  public Son (int num) {
    if (num > 17)
       super(num, true);
    else
      super(num , false);
  }
  ...
}

我也考虑过让 Base 成为一个接口(interface),但这不允许我强制执行一些参数正确性检查。

感谢您的帮助。

最佳答案

我不是 100% 确定,但这行得通吗?

class Son extends Base {
  ...
  public Son (int num) {
       super(num, (num>17));
  }
  ...
}

关于Java - 如何根据继承类的构造函数参数调用不同的 super()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20999559/

相关文章:

java - Java Hashmap 的类型系统是什么?

java - 为什么我不能在 Java 中传递这样的数组

c# - 多态性:做对

python - 理解@property 装饰器和继承

javascript - Ember.js:回调函数中的 this._super

python - 在 python 中调用父类(super class)的 __init__ 时显式传递 Self

java - 访问游戏中的全局对象! 2.0 与 Java

java - 在 Tomcat 服务器上加载静态文件

java - 从 Java 8 开始,抽象类还有哪些用例?

html - 表格中的字体颜色不继承自父 div