该程序仅显示" A"等级是10。 但为什么该计划没有进入班级" B"答案应该是12?
interface ConstInterface {
int MAX=10;
}
public class A implements ConstInterface {
public static void main(String[] args) {
System.out.println(MAX);
}
}
class B {
int MAX=12;
void maxNew(){
System.out.println(MAX);
B obj = new B();
obj.maxNew();
}
}
答案 0 :(得分:1)
当main()
返回时,您的程序结束。您在main()
中没有调用类B
中任何内容的代码。这就是该计划“不进步”的原因。
你可以通过移动两行
来改变这一点B obj = new B();
obj.maxNew();
maxNew()
中的B
方法并将其放入main()
:
public static void main(String[] args) {
System.out.println(MAX);
B obj = new B();
obj.maxNew();
}
答案 1 :(得分:0)
在Java for standalone application中,执行的起点是一个类中的public main方法,在你的例子中是A类。
要执行B类的maxNew,你应该在main方法中创建B的对象并调用maxNew方法。
尝试以下修改后的代码:
interface ConstInterface {
int MAX=10;
}
public class A implements ConstInterface {
public static void main(String[] args) {
System.out.println(MAX);
B b = new B();
b.newMax();
}
}
class B {
int MAX=12;
void maxNew(){
System.out.println(MAX);
}
}
答案 2 :(得分:0)
这里有一课:计算机完全按照你的要求去做。对于由 main 方法的内容确定的Java程序。并且您的主要内容不包含任何可以使用 B 类的内容。