Java:不知怎么的,我设法扩展了一个最终方法
Vector3类包含以下内容: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
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,而不是“扩展”方法。你可以覆盖它们。(在本例中,您重载了该方法,而不是重写它。)