gpt4 book ai didi

java - 如何在抽象父类(super class)中定义常量/最终变量但在子类中分配它们?

转载 作者:搜寻专家 更新时间:2023-10-30 21:05:22 24 4
gpt4 key购买 nike

我有一个抽象类,我想在其中声明最终变量。

但是,我只想在子类的构造函数中为这些变量赋值。

显然,这是不可能的,因为所有“最终字段都必须初始化”。我不明白为什么,因为无论如何都不可能实例化一个抽象类。

我想要的是这样的:

abstract class BaseClass {
protected final int a;
}

class SubClass extends BaseClass {
public SubClass() {
a = 6;
}
}

当你实现一个接口(interface)时,我想象一些类似于方法的东西。然后你也被迫在(子)类中实现方法。

最佳答案

您应该在您的抽象类中定义一个构造函数,该构造函数为a 取值,并从您的子类中调用该构造函数。这样,您将确保您的最终属性始终被初始化。

abstract class BaseClass {
protected final int a;

protected BaseClass(int a)
{
this.a = a;
}
}

class SubClass extends BaseClass {
public SubClass() {
super(6);
}
}

关于java - 如何在抽象父类(super class)中定义常量/最终变量但在子类中分配它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12988294/

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