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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 320215787 中级黑马   /  2016-5-8 17:08  /  448 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

interface A {
        public void fun1();
}

class Outer {
        public void get(A a) {
                a.fun1();
        }
}

public class Test {
        public static void main(String[] args) {
                class Inner implements A {
                        public void fun1() {
                                System.out.println("111111");
                        }
                }
                new Outer().get(new Inner());
        }
}
谁能给解释下程序

2 个回复

倒序浏览
没学几天的完全小白,求大家多指导指导
interface A
{
         public void fun1();
}
//创建一个外部类
class Outer
{
        //创建一个get方法
      public void get(A a) //A a = new Inner(多态)  
                 {
                 a.fun1();//调用内部类Inner的fun1方法(本程序中)
         }
}

public class Test
{
         public static void main(String[] args)
                 {
                 class Inner implements A //创建一个内部类Inner,并实现A接口
                                 {
                                            //要复写接口中的方法
                         public void fun1()
                                                 {
                                 System.out.println("111111");
                         }
                 }
                                 //创建一个Outer外部类对象并运行get方法
                 new Outer().get(new Inner());
         }
}
回复 使用道具 举报
不知道思路对不对,
在get方法中,把 Inner 的匿名对象作为参数类型:A a=new Inner();
Inner实现interface A,因为存在多态,所以执行Inner中的fun1(),打印111111.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马