黑马程序员技术交流社区
标题:
关于接口的一个问题
[打印本页]
作者:
zippo
时间:
2014-7-27 22:52
标题:
关于接口的一个问题
本帖最后由 zippo 于 2014-8-2 22:42 编辑
interface A{}
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());
}
}
复制代码
整个程序是编译失败的,因为a.test(); A接口中没有该定义test();
但是,上面这两句不理解!请大神们,讲解一下这是怎么个事?
作者:
王乐乐
时间:
2014-7-27 23:05
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());
}
}
作者:
王乐乐
时间:
2014-7-27 23:06
在接口中定义一个test()抽象方法就可以了。
作者:
奋上
时间:
2014-7-27 23:07
本帖最后由 奋上 于 2014-7-27 23:10 编辑
发错了,呵呵,这道题我也不是怎么理解 return new B();是返回一个B类的实例化对象是吗?
作者:
王乐乐
时间:
2014-7-27 23:14
引用类型为A,实例是B,相当于A a = new B();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2