黑马程序员技术交流社区
标题:
关于返回值为interface类的问题
[打印本页]
作者:
Laopozini123
时间:
2016-3-24 18:38
标题:
关于返回值为interface类的问题
class a89 {
public static void main(String[] args) {
Outer.method().show();
}
}
interface Inter {
void show();
}
class Outer { //补齐代码
public static Inter method( ){
return new Inter(){
public void show(){
System.out.println("HelloWorld");
}
};
}//补齐代码
}
复制代码
上述代码中,两个补齐代码之间的是自己添加的代码,这个视频也讲过,但是有个疑问
outer类里面创建的method方法为什么返回值是Inter类型的? Inter是接口啊~这个到底是怎么回事~能弄明白的大神,能不能告知一下?
10.16视频讲的,10.18也讲了,都在这个地方弄不明白了,为什么能返回一个Inter呢?????
作者:
lyy0525
时间:
2016-3-24 18:54
new Inter(){
public void show(){
System.out.println("HelloWorld");
}
这句话相当于创建一个
class Zi implements Inter{
public void show(){
System.out.println("HelloWorld");
}
}
然后 Inter i=new zi();
作者:
wlsperfect
时间:
2016-3-24 19:52
new Inter(){
public void show(){
System.out.println("HelloWorld");
}
};是一个匿名内部类,这个类是inter接口的子类,因此return它,就相当于返回一个inter子类对象,
而定义返回值类型为Inter,正是父类引用指向子类对象,接口虽然不能直接new,但可以接收子类对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2