package factory;public class Pci{ 
  public static void main(String[] args) 
  { 
    MainBoard mb=new MainBoard(); 
    NetworkCard nc=new NetworkCard(); 
    mb.usePCICard(nc); 
    SoundCard sc=new SoundCard(); 
    mb.usePCICard(sc); 
  } 
} class NetworkCard implements PciFace{ //网卡
  public void start() 
  { 
    System.out.println("Send..."); 
  } 
  public void stop() 
  { 
    System.out.println("Network stop!"); 
  } 

 
 class SoundCard implements PciFace //声卡 

  public void start() 
  { 
    System.out.println("Du du..."); 
  } 
  public void stop() 
  { 
    System.out.println("Sound stop!"); 
  } 
} class MainBoard //主板调用接口的运行方法,也就是调用PCI的函数

public void usePCICard(PciFace p) 
  { 
    p.start(); 
    p.stop(); 
  } 

 
以上这段代码我在myeclipse中填写,接口已经建立,但是在NetworkCard、SoundCard 、MainBoard 类名前添加修饰符时总是提示错误,只有不加任何修饰符就能通过,请问这是为什么呢?

解决方案 »

  1.   

    因为一个文件中只能有1个public类,而且那个public类必须和文件名一样!
      

  2.   

    但是我在前面填写private提示有错误啊
      

  3.   

    你要加什么修饰符? abstract 是允许的, public 现在一个文件里最多有一个,且【看一楼】
      

  4.   

    建议你把需要 public 的类,写到一个单独的文件里面
      

  5.   

    eclipse的提示已经说得很清楚了,
    illegal modifier for the class B,only public ,abstract & final are permitted
    ------------------
    private是不能用来修饰class的
      

  6.   

    如果外部类是private的,那谁可以访问?
      

  7.   

    默认可以称为friendly,但java中并没有这个修饰符,只是习惯称呼而已!
      

  8.   

    访问控制修饰符:public ,protected,fridenly(默认),private,在同一类中、同一包中、不同包中的子类、不同包中的非子类,修饰符的作用不一样的。。
    类型说明修饰符:final,abstract,static
      

  9.   

    public 类 只能有一个 并且和文件名一致