2. 已知有两个接口如下所示,要求定义一个类,其中包含两个内部类,这两个内部分别实现这两个接口,且设为private,在类中分别定义两个方法,可以返回这两个接口。
public interface Destination { String readLabel();}  
public interface Contents { int value();}
我的程序如下:
public class OutClass
{
  private class InnerClass1 implements Destination
  {
    public String readLabel()
    {
      return "InnerClass1 String readLabel()";
    }
  }
  private class InnerClass2 implements Contents
  {
    public int value()
    {
      return 8;
    }
  }
  public Destination getInnerClass1()
  {
    Destination class1 = new InnerClass1();
    return class1;
  }
  public Contents getInnerClass2()
  {
    Contents class2 = new InnerClass2();
    return class2;
  }
  public static void main(String[] args)
  {
    Destination classDemo1 = new OutClass().getInnerClass1();
    System.out.println(classDemo1.readLabel());    Contents classDemo2 = new OutClass().getInnerClass2();
    System.out.println(classDemo2.value());
  }
}可是我把里面的两个内部类同时实现这两个接口就出现编译错误了,我修改后的代码是这样的:
public class OutClass
{
  private class InnerClass1 implements Destination, Contents
  {    public String readLabel()
    {
      return "InnerClass1 String readLabel()";
    }    public int value()
    {
      return 8;
    }
  }  private class InnerClass2 implements Destination, Contents
  {    public String readLabel()
    {
      return "InnerClass2 String readLabel()";
    }    public int value()
    {
      return 8;
    }
  }  public Destination getInnerClass1()
  {
    Destination class1 = new InnerClass1();
    return class1;
  }
  public Contents getInnerClass2()
  {
    Contents class2 = new InnerClass2();
    return class2;
  }  public static void main(String[] args)
  {
OutClass outClass = new OutClass();
Destination destination = outClass.getInnerClass1();
System.out.println(destination.readLabel());
System.out.println(destination.value()); Contents contents = outClass.getInnerClass2();
System.out.println(contents.readLabel());
System.out.println(contents.value());
    /**
       InnerClass1 classDemo1 = new InnerClass1();
       System.out.println(classDemo1.readLabel());
       System.out.print("InnerClass1 int value()");
       System.out.println(classDemo1.value());       System.out.println();       InnerClass2 classDemo2 = new InnerClass2();
       System.out.println(classDemo2.readLabel());
       System.out.print("InnerClass2 int value");
      System.out.println(classDemo2.value());
   */
  }
}