java关于final的用法
修改给定的程序,使得程序能顺利运行,且结果如下:speedlimit=120
running safely with 100kmph
running safely with 100kmph
根据提示,在下面编辑器中根据编译的错误提示修改源程序。
/* 请在下面的 Begin 和 end之间修改源程序。
不可以修改 final 变量的值
final方法,不可以重写
不可以定义final 类
*/
public class Main {
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 *********/
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 *********/ /* 请在下面的 Begin 和 end之间修改源程序。
不可以修改 final 变量的值
final方法,不可以重写
不可以定义final 类
*/
public class Main {
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 *********/
class Bike1 {
final int speedlimit = 90;
void run() {
// 不可以修改final变量的值
System.out.println("speedlimit=" + speedlimit);
}
}
class Bike2 {
final void run() {
System.out.println("running");
}
}
class Honda extends Bike2 {
// 不可以重写final方法
// 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 *********/
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 错误如下:
在Bike1类中,speedlimit被声明为final,这意味着它的值一旦被初始化就不能再改变。所以,我们不能在run方法中修改speedlimit的值。
在Honda类中,程序试图重写Bike2类的run方法,但是run方法在Bike2类中被声明为final,这意味着它不能被重写。
在Yamaha类中,程序试图继承Bike3类,但是Bike3类被声明为final,这意味着它不能被继承。
代码:
public class Main {
public static void main(String args[]) {
Bike1 obj = new Bike1();
obj.run();
Honda honda = new Honda();
honda.run();
Yamaha yamaha = new Yamaha();
yamaha.run();
}
}
class Bike1 {
final int speedlimit = 90;
void run() {
System.out.println("speedlimit=" + speedlimit);
}
}
class Bike2 {
void run() {
System.out.println("running");
}
}
class Honda extends Bike2 {
@Override
void run() {
System.out.println("running safely with 100kmph");
}
}
class Bike3 {
void run() {
System.out.println("running");
}
}
class Yamaha extends Bike3 {
@Override
void run() {
System.out.println("running safely with 100kmph");
}
}
页:
[1]