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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Outer
{
    void method()
    {
        Object obj = new Object()
        {
            public void show()
            {
                System.out.println("show run");
            }

        };    //这里为什么有个;号?不加可以吗?为什么?
        obj.show();//这里为什么不能这样调用?为什么?
                  


    }
}

class InnerClassDemo6
{
    public static void main(String[] args)
    {
        new Outer().method();
    }
}

评分

参与人数 2技术分 +1 黑马币 +6 收起 理由
lwj123 + 1
静水★流深 + 6 赞一个!

查看全部评分

23 个回复

倒序浏览
典型的匿名内部类,不加的话,就会编译错误了,方法内部不能有方法,加上就是匿名内部类,不加就坏了
回复 使用道具 举报
应该是匿名类部类吧
回复 使用道具 举报
局部内部类的标准格式,就好像为什么public static void main(String[] args){ }一样,固定格式
回复 使用道具 举报
局部内部类的标准格式,就好像为什么public static void main(String[] args){ }一样,固定格式
回复 使用道具 举报
要加分号是因为那是个语句,那是引用指向匿名内部类对象。
obj.show();不能这样调用是因为Object类中没有这个方法,父类引用无法调用子类特有的方法
回复 使用道具 举报
;是匿名内部类的写法。
不能直接调用是因为父类Object中没有show方法。
回复 使用道具 举报
这是匿名内部类
回复 使用道具 举报
为了理想而奋斗 来自手机 中级黑马 2015-6-21 21:31:56
9#
内部匿名类。
回复 使用道具 举报
匿名内部类,不加的话,就会编译错误
回复 使用道具 举报
匿名内部类.........
回复 使用道具 举报
就是个匿名内部类
分号那是一句话,创建对象吧
show()方法在Object中没有啊,所以不能调用
回复 使用道具 举报
类名 对象名 = new 类名();   不加分号能行吗?
回复 使用道具 举报
就是个匿名内部类
回复 使用道具 举报
典型的匿名内部类
回复 使用道具 举报
匿名内部类把,每台看懂
回复 使用道具 举报
匿名内部类当然得有个分号
回复 使用道具 举报
林RM 中级黑马 2015-6-21 22:29:26
18#
匿名内部类,Object obj=Object的子类对象是多态的形式,show方法是子类中的方法,父类没有定义,所以编译失败
回复 使用道具 举报
匿名内部类 哦哦哦
回复 使用道具 举报
匿名内部类
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马