Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:不知怎么的,我设法扩展了一个最终方法_Java_Methods_Final - Fatal编程技术网

Java:不知怎么的,我设法扩展了一个最终方法

Java:不知怎么的,我设法扩展了一个最终方法,java,methods,final,Java,Methods,Final,Vector3类包含以下内容: public final boolean set(float x, float y, float z) { setX(x); setY(y); setZ(z); return true; } public boolean set(float x, float y, float z, float w) { setX(x); setY(y); setZ(z); setW(w); return t

Vector3类包含以下内容:

public final boolean set(float x, float y, float z) {
    setX(x);
    setY(y);
    setZ(z);
    return true;
}
public boolean set(float x, float y, float z, float w) {
    setX(x);
    setY(y);
    setZ(z);
    setW(w);
    return true;
}
Vector4类包含以下内容:

public final boolean set(float x, float y, float z) {
    setX(x);
    setY(y);
    setZ(z);
    return true;
}
public boolean set(float x, float y, float z, float w) {
    setX(x);
    setY(y);
    setZ(z);
    setW(w);
    return true;
}

没有错误。为什么?

您没有覆盖
Vector4
中的
set
。你超载了
Vector4
set
方法有4个参数,而
Vector3
set
方法有3个参数。没有错误,因为没有方法试图覆盖
final
set
方法,在
Vector3

中没有覆盖
set
中的
Vector4
。你超载了
Vector4
set
方法有4个参数,而
Vector3
set
方法有3个参数。没有错误,因为没有方法试图覆盖
Vector3
中的
final
set
方法。您没有扩展该方法,而是创建了具有不同签名的新重载方法。尽管它们可能具有相同的名称,但它们的参数列表不同这一事实使它们具有不同的方法

是否尝试用以下内容覆盖Vector3.set(float,float,float):


在Vector4中,编译时可能会出现错误。

您没有扩展该方法,而是使用不同的签名创建了一个新的重载方法。尽管它们可能具有相同的名称,但它们的参数列表不同这一事实使它们具有不同的方法

是否尝试用以下内容覆盖Vector3.set(float,float,float):


在Vector4中,编译时可能会出现错误。

我应该注意Vector4扩展了Vector3。您不能“扩展”方法。你可以覆盖它们。(在本例中,您重载了该方法,而不是重写它。)我应该注意,Vector4扩展了Vector3,而不是“扩展”方法。你可以覆盖它们。(在本例中,您重载了该方法,而不是重写它。)