当前位置: 首页 > 面试题库 >

方法签名中的final关键字

冯德宇
2023-03-14
问题内容

在尝试做一些尝试时,我遇到了一个在本页中描述的问题。

interface B {
    public int something(final int a);
}

abstract class C {
    public int other(final int b);
}

class A extends C implements B {

    public int something(int a) {
        return a++;
    }

    public int other(int b) {
        return b++
    }
}

为什么可以使用这种功能?我不知道为什么仅通过覆盖方法就可以将最终参数设置为非最终参数。为什么在方法签名中忽略了final关键字?以及如何让子类在其方法中使用最终变量?


问题答案:

Java通过值将参数传递给方法。

因此,对参数的任何更改都不能传播回调用方。由此可见,无论是否声明参数final,对调用者而言绝对没有区别。因此,它是方法 实现 的一部分,而不是其
接口的 一部分。

您想要“强制子类在其方法的最终变量中使用”的动机是什么?



 类似资料:
  • 问题内容: 我经常遇到如下所示的方法: 如果在未传递最终参数的情况下调用此方法会发生什么。例如,可以将稍后更改的Object1(因此未声明为final)传递给此方法 问题答案: Java总是在将参数发送给方法之前先对其进行复制。这意味着最终的调用代码没有任何区别。这仅意味着无法在方法内部重新分配变量。(请注意,如果你有最终对象,则仍然可以更改对象的属性)。

  • final是java中的访问修饰符还是非访问修饰符? Thread类公共最终无效setName(字符串名称)的setName()方法真的是最终的吗?如果是,是否意味着一旦线程名称更改,以后就不能更改,因为最终关键字...? 或者final不是方法setName()的一部分? 请给我正确的答案。。

  • 本文向大家介绍举例讲解Java中final关键字的用法,包括了举例讲解Java中final关键字的用法的使用技巧和注意事项,需要的朋友参考一下 1. final variable final variable 就是一个常量,一旦被初始化就不可以被改变。 输出: (1)Blank final variable 在声明时未初始化的 final variable 被称作 blank final vari

  • 本文向大家介绍浅谈Java中的final关键字与C#中的const, readonly关键字,包括了浅谈Java中的final关键字与C#中的const, readonly关键字的使用技巧和注意事项,需要的朋友参考一下 在编程语言中都有某种方式,告知编译器一块数据是恒定不变的。有两个需求 1. 一个永不改变的编译器常量 2. 一个在运行时被初始化的值,而这个值不会被改变 在Java中,使用fina

  • 本文向大家介绍Java中的final关键字深入理解,包括了Java中的final关键字深入理解的使用技巧和注意事项,需要的朋友参考一下  java final关键字详解: 前言: Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的

  • 本文向大家介绍详解Java中的final关键字的使用,包括了详解Java中的final关键字的使用的使用技巧和注意事项,需要的朋友参考一下 final含义 final是Java中的一个保留关键字,可以声明成员变量、方法和类。一旦你将引用声明为final类型,你将不能再改变这个引用了。编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。 final变量 凡是对成员变量或者本地变量(