关于final

继续说点《Java面试宝典》上的事。
对于java中的final,也是面试的热门考点之一,记得淘宝面试时候,浚哥就曾给我出过这方面的题。但是当时太弱,竟然没见过 方法参数中 带final的变量。还好在浚哥的提示下,我就把之前记过的final balabala的说了一大堆,自我感觉还是挺满意的。
今日一看书上的解释,“定义方法中的参数为final,对于基本类型的变量,这样做并没有实际意义。。。。。。”,顿时大囧:难道当时答错了?
疑惑之余,赶紧编代码测试了下,然后上网查了查,事实证明,这本书上的说法有误。我忽然想起来网上有评论这本书漏洞百出,比起其前辈《程序员面试宝典》差多了。
本来下定决心,国庆七天好好看看这书,但现在想到其中不知存在多少错误,立马觉得没有多少兴趣看下去了。
要不甭看了,直接去看下一个目标《Java编程思想》?可是这么新的书,看的多爽啊。犹豫了会儿,我还是决定继续看下去,好歹有始有终,顺便可以挑挑错嘛。不过得带着挑剔的眼光去看了,有疑惑的多测试,多思考,可不能被他忽悠了。
<think>题目要求选出关于final关键字说法错误的选项,且说明是两项(A和C)。首先需要分析每个选项的正确性。 选项A:finaljava中的修饰符,可以修饰类、接口、抽象类、方法和属性。 - final可以修饰类、方法、属性(变量)。但是,final不能修饰接口。因为接口本身就是抽象的,用final修饰接口会导致接口不能被实现,这与接口的设计目的相悖。同时,final也不能修饰抽象类,因为抽象类需要被继承,而final类不能被继承。所以A选项错误。 选项B:final修饰的类肯定不能被继承。 - 正确。final类不能被继承,例如String类就是final类。 选项C:final修饰的方法不能被重载。 - 错误。final修饰的方法不能被重写(覆盖),但可以被重载。重载是在同一个类中方法名相同但参数不同的方法,与final无关。所以C选项错误。 选项D:final修饰的变量不允许被再次赋值。 - 正确。final变量只能被赋值一次,之后不能修改。 因此,错误的选项是A和C。 现在,根据要求,在回答后提出3-5个相关问题。</think>### 回答用户的问题 以下关于 `final` 关键字说法错误的是 **A 和 C**(两项),具体分析如下: #### 选项解析: 1. **A) finaljava中的修饰符,可以修饰类、接口、抽象类、方法和属性** - **错误**: - `final` **不能修饰接口**(接口默认需要被实现,`final` 会禁止实现,违反接口设计目的)。 - `final` **不能修饰抽象类**(抽象类需被继承,`final` 会禁止继承,导致矛盾)。 - ✅ 正确修饰对象:类(不可继承)、方法(不可重写)、变量(不可修改)。 2. **B) final修饰的类肯定不能被继承** - **正确**:`final` 类禁止被继承(如 `String` 类)。 3. **C) final修饰的方法不能被重载** - **错误**: - `final` 方法**不能被重写(Override)**,但**可以被重载(Overload)**。 - 重载是同一类中方法名相同、参数不同的方法,与 `final` 无关。 ```java class Example { final void show() {} void show(int a) {} // 合法重载 } ``` 4. **D) final修饰的变量不允许被再次赋值** - **正确**:`final` 变量是常量(基本类型值不可变,引用类型地址不可变)。 #### 错误总结: - **A 错误**:`final` 不能修饰接口和抽象类。 - **C 错误**:`final` 方法可被重载,不可被重写。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值