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());
*/
}
}
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());
*/
}
}
符号: 方法 value()
位置: 接口 Destination
System.out.println(destination.value());
^
OutClass.java:50: 找不到符号
符号: 方法 readLabel()
位置: 接口 Contents
System.out.println(contents.readLabel());