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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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();
        }
}

4 个回复

倒序浏览
你在E类里面又建立了一个Cry内部类,这个类的范围存在于E类之内,与外面的Cry类不冲突,所以不是覆盖的问题
,就相当于你又写了一个类
回复 使用道具 举报
楼上的说的对,你在E类里又创建了一个内部类,并不冲突
回复 使用道具 举报
可以这么理解,把它看成是一条链,总是用最近的
回复 使用道具 举报
         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()方法,打印结果为"大家好".
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马