黑马程序员技术交流社区

标题: java基础+面向对象匿名内部类+致那些蒙圈的初学者 [打印本页]

作者: 鬼魅_vYpyK    时间: 2015-12-11 15:59
标题: java基础+面向对象匿名内部类+致那些蒙圈的初学者
class NonameInner  {        //匿名内部类
        public static void main(String[] args) {
                Outer o=new Outer();   //创建父类对象Outer
                        o.method();      //调用父类方法Outer中的method方法
        }
}

interface Inter {    //匿名内部类接口
        public void show1();  
        public void show2();
}
class Outer {  //创建外部类
        public void method(){    //创建外部类方法
/*     //匿名内部类只针对重写一个方法使用

                        new Inter(){     //实现接口
                        public void show1(){
                                System.out.println("show1");
                        }
                        public void show2(){
                                System.out.println("show1");
                        }
                        }.show1();
                new Inter(){     //实现接口
                        public void show1(){
                                System.out.println("show2");
                        }
                        public void show2(){
                                System.out.println("show2");
                        }
                        }.show2();
*/
                Inter i=new Inter(){     // 创建父类引用指向子类对象    接口Inter为父类  new Inter子类对象
                        public void show1(){
                                System.out.println("show1");
                        }
                        public void show2(){
                                System.out.println("show2");
                        }
                        /*public void show3(){    //创建子类特有的方法show3
                                System.out.println("show3")
                        }
                        */
                };
                i.show1();   //编译看接口中show1方法   运行看子类对象中的show1方法
                i.show2();      //编译看接口口show2中的方法,运行看子类对象中的show2方法
                //i.show3();   //调用子类特有的方法show3会出错,因为show3子类的特有的方法父类不能进行调用使用=匿名内部类不能向下转型
        }
}

//蒙了就对了要多看几遍
作者: 队长别开枪是我    时间: 2015-12-11 16:30
顶一下吧  难为lz了
作者: 鬼魅_vYpyK    时间: 2015-12-11 17:02
eddy1820 发表于 2015-12-11 16:41
這個範例用了兩個方式,1.是直接複寫調用,2.複寫後賦給i再調用

可以分成兩個部份來理解,先把簡化實現的 ...

恩恩,是的呢!我应该单独的陈列出来,这样比较清晰!
作者: 鬼魅_vYpyK    时间: 2015-12-11 17:04
//直接调用
class Demo {
        public static void main(String[] args){
                Outer o=new Outer();
                o.method();
        }
}
interface Inter {
        public void show1();
        public void show2();
}
class Outer {
        public void method(){
                new Inter(){
                        public void show1(){
                                System.out.println("show1");
                        }
                        public void show2(){
                                System.out.println("sho1");
                        }
                    }.show1();
                new Inter(){
                public void show1(){
                        System.out.println("show2");
                }
                public void show2(){
                        System.out.println("show2");
                }
                }.show2();
               
        }
}
作者: 鬼魅_vYpyK    时间: 2015-12-11 17:06
鬼魅_vYpyK 发表于 2015-12-11 17:04
//直接调用
class Demo {
        public static void main(String[] args){

//父类调用子类对象实现
class Demo {
        public static void main(String[] args){
                Outer o=new Outer();
                o.method();
        }
}

interface Inter {   //匿名对象接口
        public void show1();
        public void show2();
}
class Outer {    //外部类
        public void method(){    //外部类方法
                Inter i=new Inter(){    //父类对象引用子类对象
                        public void show1(){
                                System.out.println("show1");
                        }
                        public void show2(){
                                System.out.println("show2");
                        }
                };
                i.show1();    //编译看借口中show1方法,运行看子类中的show1方法
                i.show2();
        }
}
作者: 我住隔壁我姓王    时间: 2015-12-11 20:20
学习了  还没学接口
作者: LSD-ZWH    时间: 2015-12-12 22:38
感觉看了这个我都快疯了
作者: 很急很关键    时间: 2015-12-12 22:49
蒙圈了    好乱
作者: 唐洪超    时间: 2015-12-13 00:02
顶下吧,虽然还是不太明白




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2