interface DeclareStuff{
public static final int EASY = 3;
void doStuff(int t);
}
public class SuperCalc implements DeclareStuff
{
public static void main(String [] args)
{
int x= 5;
new SuperCalc().doStuff(++x);
}
void doStuff(int s)//这里为什么出错
{
s+=EASY+ ++s;
System.out.println("s "+s);
}
}//这里为什么出错

解决方案 »

  1.   

    要加public
    public void doStuff(int s) {
    s += EASY + ++s;
    System.out.println("s " + s);
    }
      

  2.   

    要改成public void doStuff(int s)// 这里为什么出错接口中的所有域和方法都是public的,所以,在接口中,你的void doStuff(int t);虽然没有写public,但是默认是public的,写不写都一样。
      

  3.   

    因为java的接口中默认的变量都是 public static final的。
    而方法就都是public的
    类实现了接口就要实现接口中的所有方法, 如果你不写成public的,而写 成了default或者不写,那么就代表只有包内有效, 就更改接口的的实现规则,也就大大的缩小了接口中方法的使用范围。