A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zippo 中级黑马   /  2014-7-27 22:52  /  784 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zippo 于 2014-8-2 22:42 编辑
  1. interface A{}
  2. class B implements A
  3. {
  4.         public String test()
  5.         {
  6.                 return "yes";
  7.         }
  8. }
  9. class Demo
  10. {
  11.         static A get()//这句不理解?
  12.         {
  13.                 return new B();//B是哪来的?
  14.         }
  15.         public static void main(String[] args)
  16.         {
  17.                 A a=get();//这句不理解?是在new对象吗?
  18.                 System.out.println(a.test());
  19.         }
  20. }
复制代码
整个程序是编译失败的,因为a.test(); A接口中没有该定义test();

但是,上面这两句不理解!请大神们,讲解一下这是怎么个事?

4 个回复

倒序浏览
interface A{
        public abstract String test();
}
class B implements A
{
                public String test()
                {
                                return "yes";
                }
}
class Demo
{
                static A get()//这句不理解?
                {
                                return new B();//B是哪来的?
                }
                public static void main(String[] args)
                {
                                A a=get();//这句不理解?是在new对象吗?
                                System.out.println(a.test());
                }
}
回复 使用道具 举报
在接口中定义一个test()抽象方法就可以了。
回复 使用道具 举报
本帖最后由 奋上 于 2014-7-27 23:10 编辑

发错了,呵呵,这道题我也不是怎么理解  return new B();是返回一个B类的实例化对象是吗?
回复 使用道具 举报
引用类型为A,实例是B,相当于A a = new B();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马