黑马程序员技术交流社区

标题: 有关匿名类-为什么匿名类会把原来的类覆盖掉? [打印本页]

作者: 王--明    时间: 2012-2-26 22:21
标题: 有关匿名类-为什么匿名类会把原来的类覆盖掉?
class  Cry{
        public void cry(){
                System.out.println("大家好");
        }
}

public class E{
        public static void main(String args[]){
                Cry hello = new Cry(){
                                        public void cry(){
                                                System.out.println("大家好,祝工作顺利!");
                                        }
                                };
                hello.cry();
        }
}
作者: 李晓俊老师    时间: 2012-2-26 22:34
你在E类里面又建立了一个Cry内部类,这个类的范围存在于E类之内,与外面的Cry类不冲突,所以不是覆盖的问题
,就相当于你又写了一个类
作者: 朱皓    时间: 2012-2-26 22:54
楼上的说的对,你在E类里又创建了一个内部类,并不冲突
作者: 少威    时间: 2012-2-26 23:33
可以这么理解,把它看成是一条链,总是用最近的
作者: 王康    时间: 2012-2-27 10:57
         Cry hello = new Cry(){
                     public void cry(){
                             System.out.println("大家好,祝工作顺利!");
                     }
             };
             hello.cry();

hello.cry()中的cry()方法,是你类E中的cry方法,相当与你重新定义了一个cry()方法,与你Cry类中的cry()方法没有关系.
如果,你的类E中的cry()方法改为crys(),那么此时调用的是你的Cry类中的cry()方法,打印结果为"大家好".





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