gpt4 book ai didi

java - 在子类中引用抽象父类(super class)字段

转载 作者:行者123 更新时间:2023-11-29 03:37:35 24 4
gpt4 key购买 nike

我有一个 abstract 父类(super class),它有一个 protected String 变量。它未在父类(super class)中初始化。

我想做的就是初始化并在子类中使用它。所以,我有这样的东西:

    public class MySubclass extends MyAbstractSuperclass {        
thing = "i'm a thing";
[...]
}

看起来很简单,因为继承的全部意义在于在不同的上下文中重用类及其字段。但这是错误的:token“thing”语法错误,VariableDeclaratorId expected after this token

我可以通过在子类初始化两边加上方括号来编译它。我想知道的是为什么第一种方式是错的,为什么用括号修复。感谢您的帮助。

编辑:我很感激我可以通过使用构造函数来解决这个问题的提示。但是,我仍然很好奇以这种方式使用父类(super class)字段到底有什么问题,因为在我看来它非常直观。而且,为什么大括号会修复它,用大括号包围一个语句到底意味着什么?循环结构?

最佳答案

这不是 Scala,你必须写一个明确的构造函数:

public class MySubclass extends MyAbstractSuperclass {        
public MySubclass() {
thing = "i'm a thing";
[...]
}
}

或者使用带参数的构造函数:

public abstract class MyAbstractSuperclass {

protected final String thing;

protected MyAbstractSuperclass(String thing) {
this.thing = thing;
}

}

public class MySubclass extends MyAbstractSuperclass {
public MySubclass() {
super("i'm a thing");
}
}

关于java - 在子类中引用抽象父类(super class)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14695151/

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