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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Conning 中级黑马   /  2014-5-17 22:25  /  2517 人查看  /  14 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. interface Inter  {
  2.         public abstract void show();
  3. }
  4. class Outer  {
  5.         //请完成Outer的内容
  6. }
  7. class  InterClassTest{
  8.         public static void main(String[] args) {
  9.                 Outer.method().show();
  10.         }
  11. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

14 个回复

倒序浏览
  1. interface Inter  {
  2.     public abstract void show();
  3. }
  4. class Outer  {
  5.     //请完成Outer的内容
  6.         public static Inter method() {
  7.                 return null;
  8.         }
  9. }
  10. class  InterClassTest{
  11.     public static void main(String[] args) {
  12.             Outer.method().show();
  13.     }
  14. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
  1. interface Inter  {
  2.     public abstract void show();
  3. }
  4. class Outer  {
  5.     //请完成Outer的内容
  6.         public static Inter method() {
  7.                 return new Inter(){
  8.                 public void show(){}
  9.             };
  10.         }
  11. }
  12. class  InterClassTest{
  13.     public static void main(String[] args) {
  14.             Outer.method().show();
  15.     }
  16. }
复制代码
回复 使用道具 举报
/*
分析思路:
1.因为在主函数中直接通过Outer类名直接调用了method()方法,
说明method()是Outer类中的一个静态方法。
2.method()方法又直接调用show()方法,但发现show()方法是接口Inter
的方法,所以可以得出,method()这个方法运算后是一个Inter类型的实例对象,
可以通过匿名内部类来实现Inter借口。
*/
interface Inter  {
        public abstract void show();
}
class Outer  {
        //请完成Outer的内容
                static Inter method()
                {
                        return new Inter()
                        {
                                public void show()
                                {
                                        System.out.println("show() funning!");
                                }                       
                        };
                }
}
class  InterClassTest{
        public static void main(String[] args) {
                Outer.method().show();
        }
}


评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
和楼上一样..
回复 使用道具 举报
学习啦、、楼主讲的很详细啊,我一开始只想到method()是Outer类中的一个静态方法,show是Inner接口的方法,原来可以用匿名内部类去实现inner接口,调用接口方法、、、
回复 使用道具 举报
/*
  1、在main方法里面有一个Outer类名调用了method()方法
     那么这个method()方法肯定是Outer类中的一个静态的方法
         (因为只有本类中的静态方法才能直接被类名调用)
  2、在method()方法后面又直接调用了show()方法。show()方法又是Inter
     接口中的方法,但是Inter接口不能直接创建对象,也没有被实现。
         所以就要想到使用匿名内部类去实现Inter接口
  3、因为匿名内部类是没有名字的,所以它返回的是Inter接口类型
     匿名内部类的格式:new  外部类名或者接口名(){覆盖类或者接口中的代码。(也可以自定义内容)};
*/
interface Inter{
        public abstract void show();
}

class Outer{
        //请完成Outer的内容
        public static Inter method(){
                return new Inter(){
                        public void show(){}
                };
        }
}

class InterClassTest{
        public static void main(String[] args){
                Outer.method().show();
        }
}
回复 使用道具 举报
用匿名内部类
回复 使用道具 举报
流沙 中级黑马 2014-5-18 07:00:57
9#
基础视频里边的第110个视频,匿名内部类,一模一样的题!基础视频没好好看???
回复 使用道具 举报
考察匿名内部类的
回复 使用道具 举报
  1. interface Inter
  2. {
  3.         public abstract void show();
  4. }
  5. class Outer
  6. {
  7.         //请完成Outer的内容
  8.                 public static Inter method()
  9.         {
  10.                  Inter i=new  Inter()
  11.                 {  public void show()
  12.                         {System.out.println("show");}
  13.                 };
  14.                 return i;
  15.         }


  16. }
  17. class  InterClassTest{
  18.         public static void main(String[] args) {
  19.                 Outer.method().show();
  20.         }
  21. }
复制代码


回复 使用道具 举报
老毕的视频里面有的
回复 使用道具 举报
  1. class method implements inter
  2. { void show(){}}
复制代码

这样不就结了么
回复 使用道具 举报
stream 发表于 2014-5-18 14:58
这样不就结了么

少了个static
回复 使用道具 举报
匿名内部类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马