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 对象时,您将传入 y
、m
和 d
的值。
你需要像这样调用你的超级构造函数:
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);
}
我是新来的,所以我的一些格式可能很奇怪。
我在调用超级构造函数时遇到了一些问题。每次我编译我的跑步者 class,我都会遇到一些错误:
.class expected" or "; expected
这是怎么回事?
(代码)
(编译器输出)
您不能在调用 super()
的参数部分内声明变量;
或许您需要的是:
public DateDriver(int y, int m, int d) {
super(y, m, d);
}
然后,当您在 main()
方法中构造 DateDriver 对象时,您将传入 y
、m
和 d
的值。
你需要像这样调用你的超级构造函数:
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);
}