黑马程序员技术交流社区

标题: 关于内部接口问题 [打印本页]

作者: Rancho_Gump    时间: 2012-12-7 18:39
标题: 关于内部接口问题
本帖最后由 张向辉 于 2012-12-8 13:33 编辑

在接口A中定义有接口B,那么对A进行实现时,是不是B也必须被实现呢?
作者: 怪盗急得    时间: 2012-12-7 20:35
实现接口就是想创建实例对象和添加功能。如果只为创建实例对象的话,要创建什么接口的实例对象就实现什么接口。

class InterfaceTest
{
        public static void main(String[] args)
        {
                new Test2().show();
        }
}

interface Test1
{
        public abstract void show();

        interface Test2
        {
                public abstract void function();
        }
}

class Test2 implements Test1
{

        public void show()
        {
                System.out.println("不用实现内部类也可以创建实例对象");
        }
}

这种问题,以后要自己敲代码,问虚拟机行不行。这才是学java的王道啊。
作者: xjandrew    时间: 2012-12-7 20:57
  1. public class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 new shixian().show();
  6.                
  7.         }
  8. }

  9. class shixian implements A
  10. {
  11.         public void show()
  12.         {
  13.                 System.out.println("A");
  14.         }
  15. }
  16. public interface A
  17. {
  18.         public interface B{}
  19.        
  20. }
复制代码
经测试,接口B并不用被实现,编译运行都不报错
作者: xjandrew    时间: 2012-12-7 21:11
假如接口A中还有接口C
  1. public interface A
  2. {
  3.         public interface B{}
  4.         public interface C{}
  5.        
  6. }
  7. public class Test  
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 new shixian().show();
  12.                 new shixian2().show();
  13.         }
  14.        
  15. }

  16. class shixian implements A
  17. {
  18.         public interface B
  19.         {
  20.                 public void show();
  21.         }
  22.        
  23.         public void show()
  24.         {
  25.                 System.out.println("A");
  26.         }
  27. }

  28. class shixian2 implements shixian.B
  29. {

  30.         public void show()
  31.         {
  32.                 System.out.println("B");
  33.         }
  34.        
  35. }
复制代码
接口C不实现也没问题
作者: Rancho_Gump    时间: 2012-12-8 13:22
问题已经解决
作者: Rancho_Gump    时间: 2012-12-8 13:32
嗯  让版主费心   {:soso_e112:}
作者: 马良    时间: 2012-12-8 14:07
楼主,你可以去回忆一下Map集合中的嵌套接口Map.Entry啊!!你经常使用Map,但是你去实现接口Map.Entry了吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2