interface D { 
void showd();

public class Login implements D{
public static void main(String[] args)
  {
}
public void showd(){}
}
为什么重写接口D中的showd()方法,要用public修饰呢?
谁知道具体的!!!!----《原理性解释》-----!!!!!!
继承不是说重写的方法访问权限只要不小于原方法就可以吗?而接口要求用public
接口定义成这种规则是怎样考虑的呢?

解决方案 »

  1.   

    接口里边的方法是要定义成public,默认为public,所以继承时就要用public
      

  2.   

    interface 中的方法只能是public的,
    写成 void showd();是一种简化的写法,其实和public void showd();是等价的。
    假如允许用非public 的方式实现接口的话,使用这个接口类型对象的方法在运行时如果碰到了用非public方式实现接口的对象不就访问不了接口中定义的方法了么,就会出现运行时的异常了。
      

  3.   

    不是public怎么能重写呢
    结果中的抽象方法都是public的(默认也是public)
      

  4.   

    sun的那个大胡子老头规定的,人家让你这么写你就必须这么写,计算机语言是人工语言,没有这么多为什么。等我牛比了发明个什么语言,把public改成用gongyou,你用这个语言也就照写了萨
      

  5.   

    接口中的方法都是public,而且不用关键字public,但你继续后就需要用public了,不然就是private