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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


  1. class a89 {
  2.         public static void main(String[] args) {
  3.                   Outer.method().show();
  4.           }
  5. }



  6. interface Inter {
  7. void show();
  8. }
  9. class Outer { //补齐代码
  10.         public static Inter method( ){
  11.                 return new Inter(){
  12.                         public void show(){
  13.                                 System.out.println("HelloWorld");
  14.                         }
  15.                 };
  16.         }//补齐代码
  17. }
复制代码
上述代码中,两个补齐代码之间的是自己添加的代码,这个视频也讲过,但是有个疑问
outer类里面创建的method方法为什么返回值是Inter类型的?  Inter是接口啊~这个到底是怎么回事~能弄明白的大神,能不能告知一下?
10.16视频讲的,10.18也讲了,都在这个地方弄不明白了,为什么能返回一个Inter呢?????

2 个回复

倒序浏览
new Inter(){
                        public void show(){
                                System.out.println("HelloWorld");
                        }
这句话相当于创建一个
class Zi implements Inter{
        public void show(){
        System.out.println("HelloWorld");
        }
}
然后 Inter i=new zi();
回复 使用道具 举报
new Inter(){
                        public void show(){
                                System.out.println("HelloWorld");
                        }
                };是一个匿名内部类,这个类是inter接口的子类,因此return它,就相当于返回一个inter子类对象,
而定义返回值类型为Inter,正是父类引用指向子类对象,接口虽然不能直接new,但可以接收子类对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马