java - 为子类的私有(private)属性赋值

标签 java subclass

所以我有一个抽象类:


public abstract class Superclass {
    private final boolean isTrue;
    private final int number1;
    private final int number2;
    private final int number3;

    public Superclass(boolean isTrue, int number1, int number2, int number3) {
        this.isTrue = isTrue;
        this.number1 = Math.abs(number1);
        this.number2 = Math.abs(number2);
        this.number3 = Math.abs(number3);
    }

最重要的是,我创建了一个“Superclass”的子类,它应该有 2 个公共(public)构造函数:


public class Subclass extends Superclass{

    public Subclass(int number2, int number3) {
     ...
    }

    public Subclass(int number1, int number2, int number3) {
     ...
    }

现在我想在这些构造函数中分配“isTrue” true 或 false,具体取决于数字的值。例如如果“number2”和“number3”> 0,我想将 false 分配给“isTrue”。有没有办法让这项工作无需将“isTrue”更改为公共(public)/ protected ?感谢您的帮助!

最佳答案

您可以使用现有的构造函数来解决这个问题。

对于情况 number2 和 number3 > 0,您可以这样做:

public Subclass(int number2, int number3) {
   super(!(number2 > 0 && number3 > 0), 0, number2, number3);
}

可以对其他构造函数进行类似的更改。

关于java - 为子类的私有(private)属性赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59206915/

相关文章:

java - 自动将多个集合合并为一个

java - Spring MVC 3 : Define own Datatype-Binding

java.security.AccessControlException : access denied when running applet on browser

java - Kafka流聚合功能是否将数据同时存储在ram和topic中?

python - 创建从 super() 类中提取变量的子类时出现问题

ruby - 创建类关系

java - 在 Spring Boot 1.5.20.RELEASE 上无法重定向 ErrorViewResolver 内的 View

java - 有什么好的方法可以将多维数组转换为 List<List<T>>?

iOS 9 Swift UIButton CheckBox 子类不显示图像

java - 子类中具有不同值的静态参数