日期:2014-05-20  浏览次数:20752 次

2个JAVA问题请教,在线等,高分,谢谢啊
1 按照JAVA解惑上的例子:
public final class Api {
private static class String{};  
public static void main(String[] args) {
}
}

为什么我运行报错:
java.lang.NoSuchMethodError: main
Exception in thread "main" 


2 为什么覆盖、实现方法不能减少可见性,但是域却可以?


public class Parent {

public int i=20;

public void test() {

}

public static void main(String[] args) {
//10
  System.out.println(new Sun().i);
}

}

class Sun extends Parent{

int i=10; //这个可以设置成private,下面的方法却不行

/* //Cannot reduce the visibility of the inherited method from Parent
private void test() {

}*/

}

------解决方案--------------------
1.
Java code
public static void main(String[] args)

------解决方案--------------------
第一个
主函数中的String应该是java.lang包中的,你自己写了就自己覆盖了,主函数也就不可以执行了,楼上说的清楚
第二个
楼主属于覆盖父类的方法,在覆盖的时候不能降低方法的可见性,你的程序将父类中的public降低为private了所以可以,但是对于数据就没有这个问题,楼主可以看一下域的隐藏详细了解一下