Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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_Polymorphism_Overloading_Overriding - Fatal编程技术网

Java 最终方法参数和非最终方法参数在确定方法重载或重写时是否被视为不同的参数?

Java 最终方法参数和非最终方法参数在确定方法重载或重写时是否被视为不同的参数?,java,polymorphism,overloading,overriding,Java,Polymorphism,Overloading,Overriding,让我们在父类中使用此方法: public void calculateSum(int a, final int b) { } 儿童班有: public void calculateSum(int a, int b){ } 那么是方法重载还是方法重写呢 它是覆盖的,因为参数的数量和类型是相同的 重载是指参数的类型或数量发生变化时 方法参数上的final只是指示编译器不应在方法内部更改变量值(或引用)。。。这也会影响运行时,因为最终变量是安全发布的。子类方法将覆盖父类方法。子类方法不定义新的参数

让我们在父类中使用此方法:

public void calculateSum(int a, final int b) { }
儿童班有:

public void calculateSum(int a, int b){ }

那么是方法重载还是方法重写呢

它是覆盖的,因为参数的数量和类型是相同的

重载是指参数的类型或数量发生变化时


方法参数上的
final
只是指示编译器不应在方法内部更改变量值(或引用)。。。这也会影响运行时,因为最终变量是安全发布的。

子类方法将覆盖父类方法。子类方法不定义新的参数集。“final”修饰符不影响参数类型,只要它可以被分配一个新值。

如果方法签名(包括方法名和参数列表)与返回类型(分配兼容)相同,则称为重写。向参数添加修改器不会更改参数类型。所以你的答案是覆盖的。

所以int a和final int a被视为相同的?@shanti,为了确定方法签名,因此一个方法是否覆盖另一个,是的,
int a
final int a
被视为相同的。
final
限定符的直接含义都是方法实现内部的。@JohnBollinger感谢您的回答。@Augusto:感谢您这么快地回答。