Java - 超级调用问题

Java - Super Call Issues

我是新来的,所以我的一些格式可能很奇怪。

我在调用超级构造函数时遇到了一些问题。每次我编译我的跑步者 class,我都会遇到一些错误:

.class expected" or "; expected

这是怎么回事?

(代码)

(编译器输出)

您不能在调用 super() 的参数部分内声明变量;

或许您需要的是:

public DateDriver(int y, int m, int d) {
    super(y, m, d);
}

然后,当您在 main() 方法中构造 DateDriver 对象时,您将传入 ymd 的值。

你需要像这样调用你的超级构造函数:

super(y,m,d);

当然,这就引出了这三个值应该从何而来的问题。可能您想向自己的构造函数添加三个参数:

public DateDriver(int y, int m, int d){
   super(y,m,d);
}

但是: 为什么首先要扩展 Date

super(int x, int x, int d); 没有意义。看起来你在传递它们时试图声明它们?如果 date 中存在一个带有三个 int 参数的构造函数,那么你必须重载那个......而不是无参数构造函数:

public DateDriver(int y, int m, int d) {
    super(y, m, d);
}

正确的语法是

DateDriver()
{
   super(x, y, z);
   /* other code */
}

始终保留构造函数调用的第一行。如果你想建立构造函数链接或者你想调用父class构造函数。

示例:

//for constructor chaining
DateDriver()
{
   this(x, y, z);
}
// for super call
DateDriver()
{
   this(x, y, z);
}