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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大地z灵 中级黑马   /  2015-10-27 09:51  /  700 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

记不得在哪看见的代码
public class NULL {
    public static void show(){
        System.out.println("hello");
    }
    public static void main(String[] args) {
        ((NULL)null).show();
    }
}

为什么会输出hello呢,main方法中的代码什么意思

12 个回复

倒序浏览
将无类型的null强转为NULL类型,然后再调用静态方法show(),可以把语句写成NULL  a  = (NULL)null; a.show();
这样就好理解了
回复 使用道具 举报 1 0
(NULL)null 是将一个空引用强转为 NULL 类的引用,可能相当于 new NULL(),即匿名对象。
回复 使用道具 举报
不错学习了。
回复 使用道具 举报
学到了!!!
回复 使用道具 举报
((NULL)null)  NUll是一个类  null 是Java中的一个关键字   (NUll)null   是把null 强制转换成了Null类型  在内存栈中是有引用的  因为show 被Static修饰了,是静态,静态是先于对象存在的 ,所以NUll的引用可以直接调用show 方法  无需创建对对象    (NUll)null ;和String s;  应该是一个道理的吧,只不过null 有点特殊吧了
回复 使用道具 举报
hbcoding 发表于 2015-10-27 11:05
将无类型的null强转为NULL类型,然后再调用静态方法show(),可以把语句写成NULL  a  = (NULL)null; a.show( ...

理解的很好,学习了
回复 使用道具 举报
学习到了
回复 使用道具 举报
学习了!
回复 使用道具 举报
lixp 中级黑马 2015-10-27 18:41:21
10#
不错,学习了
回复 使用道具 举报
加油!加油!加油!加油!加油!加油!加油!
回复 使用道具 举报
ppaapc 中级黑马 2015-10-27 21:25:46
12#
不错  学习了
回复 使用道具 举报
beiji 中级黑马 2015-10-27 22:19:05
13#
几个大神很厉害,学习到了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马