package case6; public class finalTest { public static void main(String args[]) { Bike1 obj = new Bike1(); obj.run(); Honda honda = new Honda(); honda.run(); Yamaha yamaha = new Yamaha(); yamaha.run(); } } //不可以修改 final 变量的值 // final方法,不可以重写 //// 不可以扩展 final 类 //请在此添加你的代码 /********** Begin *********/ class Bike1 { final int speedlimit = 90; void run() { speedlimit = 120; System.out.println("speedlimit=120"); } } class Bike2 { final void run() { System.out.println("running"); } } class Honda extends Bike2 { void run() { System.out.println("running safely with 100kmph"); } } final class Bike3 { } class Yamaha extends Bike3 { void run() { System.out.println("running safely with 100kmph"); } } /********** End **********/改为正确的代码
时间: 2023-07-01 14:05:15 浏览: 136
Finaltest1_1.c
修改后的代码如下:
```java
package case6;
public class finalTest {
public static void main(String args[]) {
Bike1 obj = new Bike1();
obj.run();
Honda honda = new Honda();
honda.run();
Yamaha yamaha = new Yamaha();
yamaha.run();
}
/********** Begin *********/
static class Bike1 {
final int speedlimit = 90;
void run() {
System.out.println("speedlimit=" + speedlimit);
}
}
static class Bike2 {
final void run() {
System.out.println("running");
}
}
static class Honda extends Bike2 {
// 不能重写 final 方法
}
final static class Bike3 {
// final 类不能被扩展
}
static class Yamaha extends Bike3 {
void run() {
System.out.println("running safely with 100kmph");
}
}
/********** End **********/
}
```
需要修改的地方:
1. `Bike1` 类中的 `speedlimit` 变量是 `final` 型的,无法在方法中修改它的值。修改后的代码中,将 `run()` 方法中的 `speedlimit` 直接输出即可。
2. `Bike2` 类中的 `run()` 方法是 `final` 型的,无法在子类中重写。修改后代码中,`Honda` 类中的 `run()` 方法被注释掉了。
3. `Bike3` 类是 `final` 型的,无法被扩展。修改后代码中,`Yamaha` 类继承了 `Bike3` 类并实现了 `run()` 方法。
阅读全文