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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 目前是菜鸟 中级黑马   /  2016-5-25 23:07  /  229 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  按照要求,补齐代码
  interface Inter { void show(); }
  class Outer { //补齐代码 }
  class OuterDemo {
   public static void main(String[] args) {
      Outer.method().show();
     }
  }
  要求在控制台输出”HelloWorld”
# 代码以及分析
class Test {
public static void main(String[] args) {
   Outer.method().show();      /*
          从这句话开始分析,Outer是类,用类名.去调用method()方法,说明method()方法是静态的,但不确定其返回值类型,Outer.method()可以调用show()方法,说明
          Outer.method()是一个对象,也就是说method()方法的返回值是一个对象,而show()方法是在接口内的,并且show()方法一定是非静态的,因为接口内的方法一定是
          抽象的,而抽象的是不能和静态的一起共用的,非静态的方法一定要创建对象才能调用,说明Outer.method()的返回值是一个对象,对象才能调用show()方法,而有
          show()方法的只有Inter,所以method()方法的返回值的类型一定是Inter类型,返回值一定是Inter对象,又因为Inter是接口,
          所以在method()方法的内部,只需返回Inter的子类对象(匿名内部类)即可
         */
}
}
//按照要求,补齐代码
interface Inter {
void show();
}
class Outer {
public static Inter method() {
  return new Inter() {
   public void show() {
    System.out.println("helloWorld");
   }
  };
  
}
}
//要求在控制台输出”HelloWorld”

5 个回复

倒序浏览
public static Inter method() {
   return new Inter() {
    public void show() {
     System.out.println("helloWorld");
    }
   };
   
}
回复 使用道具 举报
多谢  分享
回复 使用道具 举报
感谢好人  收藏了
回复 使用道具 举报
mark一下
回复 使用道具 举报
学过了,过来复习一下!!!顺便支持一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马